atutunnik94 писал(а): А появился еще вопрос, как в окне отключить системные звуки, что бы окно не выдавало этот звук при нажатии? В индивидуальном окне -- никак. Для всей системы можно отключить программно. Вот к примеру отключение системного звука Beep, но если программа закрэшится, то звук останется в последнем состоянии для всей системы: ![](/img/icon_plus.gif) Схема Add(MainForm,2953706,329,203) { Width=233 Height=110 Position=1 link(onCreate,5005951:doWork2,[]) } Add(Button,4886028,455,273) { Left=130 Top=30 TabOrder=-1 Caption="Test" link(onClick,7401773:doMessage,[]) } Add(Message,7401773,525,273) { Message="Test Beep" Icon=1 } Add(CheckBox,14509333,455,168) { Left=20 Top=30 Width=100 TabOrder=-1 Checked=0 Caption="Enabled Beep" link(onCheck,5005951:doWork1,[(494,174)(494,160)(410,160)]) } Add(InlineCode,3415143,525,217) { WorkPoints=#13:doDisableBeep|12:doEnableBeep| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses Windows,kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|22: setbeep: boolean;|9: public|20: constructor Create;|33: destructor Destroy; override;|58: procedure doDisableBeep(var _Data:TData; Index:word); |56: procedure doEnableBeep(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|31:constructor THiAsmClass.Create;|5:begin|15: inherited; |52: SystemParametersInfo(SPI_GETBEEP, 0, @setbeep, 0);|5:end; |0:|31:destructor THiAsmClass.Destroy;|5:begin|78: SystemParametersInfo(SPI_SETBEEP, ord(setbeep), nil, SPIF_SENDWININICHANGE);|15: inherited; |5:end; |0:|66:procedure THiAsmClass.doDisableBeep(var _Data:TData; Index:word); |5:begin|67: SystemParametersInfo(SPI_SETBEEP, 0, nil, SPIF_SENDWININICHANGE);|4:end;|0:|64:procedure THiAsmClass.doEnableBeep(var _Data:TData; Index:word);|5:begin|67: SystemParametersInfo(SPI_SETBEEP, 1, nil, SPIF_SENDWININICHANGE);|4:end;|0:|0:|4:end.| } Add(IndexToChanel,12161559,455,217) { Point(Index) link(onEvent1,3415143:doDisableBeep,[]) link(onEvent2,3415143:doEnableBeep,[]) link(Index,14509333:Checked,[]) } Add(HubEx,5005951,406,217) { link(onEvent,12161559:doEvent,[]) }
В коде предусмотрен возврат системного звука в исходное состояние при закрытии программы, но doEnableBeep и doDisableBeep работают независимо от начальной системной установки. Редактировалось 5 раз(а), последний 2020-08-12 02:03:49
|