• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Не работает Beep()

  • Автор темы Автор темы pidjan
  • Дата начала Дата начала
pidjan
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2020
Сообщения
530
Реакции
148
Как не пробывал, но он просто не работает. Пробывал в dll, пробывал в exe, но он так-же не воспроизводит ни малейшего звука.
Думаю с кодом ничего не связано, или может связано, но на всякий случай прикреплю код.
Код dll:
C++:
Expand Collapse Copy
#include <Windows.h>
#include <iostream>
BOOL WINAPI Main(HMODULE hmodule)
{
    MessageBoxA(0, "Status", "Injected!", MB_OK);
    return true;
}

BOOL APIENTRY DllMain(HMODULE module, DWORD Attach, LPVOID lpReserved)
{
    switch (Attach)
    {
    case DLL_PROCESS_ATTACH:
        Beep(800, 300);
        Sleep(100);
        Beep(800, 400);
        DisableThreadLibraryCalls(module);
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Main, 0, 0, 0);
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
Код exe:
C++:
Expand Collapse Copy
#include <Windows.h>
#include <iostream>
int main() {
    Beep(800, 300);
    Sleep(100);
    Beep(800, 400);
    return 1;
}
В exe в консоль ничего не выводит, пустота. exit code: 1.
С звуками вроде никакой проблемы нет, Ось: Windows 11.
 
#include <Windows.h>
#include <iostream>
int main(){
Beep(800, 300);
Sleep(5000):
}
попробуй. если звука нет- пк иссуе
 
#include <Windows.h>
#include <iostream>
int main(){
Beep(800, 300);
Sleep(5000):
}
попробуй. если звука нет- пк иссуе
Нет звука, и не может быть что пк иссуе, Так как 2020 года. Мб может что-то в реестре потыкать?
 
C++:
Expand Collapse Copy
#include <windows.h>

int main()
{
    HMODULE module_handle = GetModuleHandleA("kernel32.dll");
    FARPROC beep_proc = GetProcAddress(module_handle, "Beep");
   
    reinterpret_cast<BOOL(__stdcall*)(DWORD, DWORD)>(beep_proc)(500, 500);
   
    return 0;
}
 
C++:
Expand Collapse Copy
#include <windows.h>

int main()
{
    HMODULE module_handle = GetModuleHandleA("kernel32.dll");
    FARPROC beep_proc = GetProcAddress(module_handle, "Beep");
  
    reinterpret_cast<BOOL(__stdcall*)(DWORD, DWORD)>(beep_proc)(500, 500);
  
    return 0;
}
Тоже не работает, указывал (500, 5000) и просто задержка 5 секунд.
 
Жесть он крут, до создания потока делает бип :astonished: :sunglasses:
 
Мужик посмотри код который я написал в exe. Тут не в потоке даже дело
If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call
Пожалуйста, авторизуйтесь для просмотра ссылки.
.


Проверку на 0 сделай, посмотри что будет
Между прочим, у меня всё отлично работает.
Ты динамики может попробуешь включить?)

Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
Проверку на 0 сделай, посмотри что будет
Между прочим, у меня всё отлично работает.
Ты динамики может попробуешь включить?)

Пожалуйста, авторизуйтесь для просмотра ссылки.
1626628428423.png

Вывело 0, что значит фейл. Что делать?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Посмотреть вложение 161566
Вывело 0, что значит фейл. Что делать?
0: Операция успешно завершена.
С звуками вроде никакой проблемы нет, Ось: Windows 11.
Вот тебе и ответ на данный вопрос.
kernel32.dll открой в иде и посмотри на функцию Beep
C++:
Expand Collapse Copy
BOOL __stdcall Beep(DWORD dwFreq, DWORD dwDuration)
{
  int v2; // ecx@0
  int v3; // eax@1
  int v5; // [sp+0h] [bp-4h]@1

  v3 = GetConsoleDisplayMode_0(&v5, v2);
  if ( !(v3 != 0 ? v5 : 0) )
    sub_6B823210(0);
  return Beep_0(dwFreq, dwDuration);
}
 
0: Операция успешно завершена.

Вот тебе и ответ на данный вопрос.
kernel32.dll открой в иде и посмотри на функцию Beep
C++:
Expand Collapse Copy
BOOL __stdcall Beep(DWORD dwFreq, DWORD dwDuration)
{
  int v2; // ecx@0
  int v3; // eax@1
  int v5; // [sp+0h] [bp-4h]@1

  v3 = GetConsoleDisplayMode_0(&v5, v2);
  if ( !(v3 != 0 ? v5 : 0) )
    sub_6B823210(0);
  return Beep_0(dwFreq, dwDuration);
}
1626632491003.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Нет звука, и не может быть что пк иссуе, Так как 2020 года. Мб может что-то в реестре потыкать?
проблема в пк, а именно в самой ОС. у тебя даже в самом топорном вызове этой функции нет звука, такого быть не может.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А попробуй
BOOL MessageBeep( UINT uType );
Уже стало интересно.
Может тогда это косяки Win11, она то в тестовом режиме и следовательно где-то, что-то не работает в ней.
Это 11 винда, здесь нечего гадать
 
Последнее редактирование:
А попробуй
BOOL MessageBeep( UINT uType );
Уже стало интересно.
Может тогда это косяки Win11, она то в тестовом режиме и следовательно где-то, что-то не работает в ней.
Опробывал все звуки которые нашел на docs microsoft com(noad)
1626682749047.png

В итоге exitcode 50
 
Назад
Сверху Снизу