AZJIO

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Хотел я сделать себе отключение микрофона, когда не используется, так как он фонит слегка и так как UDF у меня не работала (не разобрался), то сделал отключение имитацией клика мыши Код: $title='Свойства: Звуки и аудиоустройства' Run(@ComSpec & " /c rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0", '', @SW_HIDE) WinWaitActive($title) ControlClick($title, "", "[CLASS:Button; INSTANCE:4]") WinClose($title) $title1='Общая громкость' WinWaitActive($title1) WinMove($title1, "", 0, 20) $GuiPos = WinGetPos($title1) MouseClick('left', $GuiPos[0]+$GuiPos[2]-100, $GuiPos[1]+$GuiPos[3]-10) ;ToolTip($GuiPos[0]+$GuiPos[2]-100 &@CRLF& $GuiPos[1]+$GuiPos[3]-10, $GuiPos[0]+$GuiPos[2]-100, $GuiPos[1]+$GuiPos[3]-10) ControlClick($title1, "", "[CLASS:Button; INSTANCE:26]") $checksum = PixelChecksum(676,313, 679,316) If PixelChecksum(676,313, 679,316)=957099137 Then MsgBox(0, 'Сообщение', 'Микрофон включен') Else MsgBox(0, 'Сообщение', 'Микрофон выключен') EndIf WinClose($title1) | Покопавшись в SoundGetSetQuery.au3 выполнил функцию Код: #include "SoundGetSetQuery.au3" #include "ListViewConstants.au3" $a=_SoundQuery() | которая возвратила список регуляторов моей системы и их состояние. Оказалось sMicrophone не является регулятором громкости микрофона, зато sAnalog оказалось 13 штук под номерами 1-13. Выставил микрофон в положение 80% и снова выполнил скрипт, по данным увидел регулятор с данными около 80% и его данные добавил в функцию, примерно так: Код: #include "SoundGetSetQuery.au3" _SoundSetMicrophoneVolume(50) Func _SoundSetMicrophoneVolume($iVolume) Local $iRet = SoundSetGet(0, "sAnalog", 9, "Volume", True, $iVolume) SetError(@error) Return $iRet EndFunc | теперь громкость устанавливается. С вкл/выкл микрофона аналогично, вот готовый скрипт Код: #include "SoundGetSetQuery.au3" _MUTE() Func _MUTE() $Mute=_SoundGetMicrophoneMute() If $Mute = 0 Then _SoundSetMicrophoneMute(1) If $Mute = 1 Then _SoundSetMicrophoneMute(0) EndFunc Func _SoundSetMicrophoneMute($fMute) Local $iRet = SoundSetGet(0, "sAnalog", 9, "Mute", True, $fMute) SetError(@error) Return $iRet EndFunc Func _SoundGetMicrophoneMute() Local $iRet = SoundSetGet(0, "sAnalog", 9, "Mute", False, 0) SetError(@error) Return $iRet EndFunc | Жаль, что микрофон не имеет стандарной абревиатуры sMicrophone, а то бы добавил в скрипт "Volume Control". Добавлено: monsoon Цитата: Гораздо удобнее нажимать. | У меня на эту клавишу раскрывается "Password Commander", может стоить сделать выбор модификаторов (Ctrl, Alt, Shift, Win) | Всего записей: 4616 | Зарегистр. 03-05-2006 | Отправлено: 16:31 23-09-2010 | Исправлено: AZJIO, 13:35 24-09-2010 |
|