Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 1
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


На авторской странице http://www.waldbauer.com/tmp/reference.php берем ссылку:
http://www.waldbauer.com/tmp/dl.php?download=beepx

Там в доке описаны 3 варианта решения проблемы. Для себя я выбрал вариант 2 (частично): т.е. запустил "Install", выбрал второй вариант и кликнул "Install BEEPXP.SYS". И все, закрываем и пользуемся.
Никаких фиксов не делал, просто в своих программах пользуюсь теперь для себя не драйвером beep.sys, а beepxp.sys.

Например:
Код: Выделить весь код
type   BEEP_PARS = record     Tone: cardinal;     Time: cardinal;   end;  const   IOCTL_BEEP_SET = $10000;   FileNameStr: array [0..9] of char = '\\.\BeXP'#0;   FileName: PChar=@FileNameStr[0];   DevName: PChar=@FileNameStr[3];  var DevPath: array [0..MAX_PATH] of char;  function CustomBeep(Freq,Duration: cardinal): longint; stdcall; var   BeepSetParams: BEEP_PARS;   BytesReturned: cardinal;   hBeep: cardinal;   OwnDevName: longbool; begin   OwnDevName:= FALSE;   if (QueryDosDevice(DevName,DevPath,MAX_PATH)=0) then begin     DefineDosDevice(DDD_RAW_TARGET_PATH,DevName,'\Device\BeepXP');     OwnDevName:= TRUE;   end;   hBeep:= CreateFile(FileName,GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0);   if (hBeep=INVALID_HANDLE_VALUE) then begin     Result:= E_FAIL;     Exit;   end;   BeepSetParams.Tone:= Freq;   BeepSetParams.Time:= Duration;   DeviceIOControl(hBeep,IOCTL_BEEP_SET,@BeepSetParams,sizeof(BEEP_PARS),nil,0,BytesReturned,nil);   if OwnDevName then DefineDosDevice(DDD_REMOVE_DEFINITION,DevName,nil);   Sleep(BeepSetParams.Time);   CloseHandle(hBeep);   Result:= S_OK; end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:27, 29-06-2012 | #14