OlegSmirnov
Новичок
- Сообщения
- 52
- Репутация
- 0
Доброго времени суток.
Помогите решить вопрос.
Имеется скрипт управления бегунками микшера громкости.
Скрипт реагирует на название той программы, которое вписано - над этим бегунком.
В данном случае - это слово "Soundtrack".
Но сейчас слово "Soundtrack"- вписано в скрипт.
И уровень громкости "50" для этого пункта - также жестко задан в скрипте.
Как скриптом - выбирать название и устанавливать уровень громкости -из списка , который написан в файле 1.txt ?
Помогите решить вопрос.
Имеется скрипт управления бегунками микшера громкости.
Скрипт реагирует на название той программы, которое вписано - над этим бегунком.
В данном случае - это слово "Soundtrack".
Но сейчас слово "Soundtrack"- вписано в скрипт.
И уровень громкости "50" для этого пункта - также жестко задан в скрипте.
Как скриптом - выбирать название и устанавливать уровень громкости -из списка , который написан в файле 1.txt ?
Код:
#include <GuiSlider.au3>
Run("SndVol.exe")
Global $hWnd = WinWaitActive("Микшер громкости")
$hSlider = _GetVolumeSlider("Gothic")
If Not @error Then _SetVolumeLevel($hSlider, 50)
Func _GetVolumeSlider($sName)
Local $hStatic, $hSlider, $i = 1
While 1
$hStatic = ControlGetHandle($hWnd, "", "Static" & $i)
If Not $hStatic Then Return SetError(1, 0, 0)
If StringInStr(ControlGetText($hWnd, "", $hStatic), $sName) Then
$hSlider = ControlGetHandle($hWnd, "", "msctls_trackbar32" & ($i + 1) / 3)
Return SetError(0, 0, $hSlider)
EndIf
$i += 1
WEnd
EndFunc ;==>_GetVolumeSlider
Func _SetVolumeLevel($hSlider, $iLevel)
Switch $iLevel
Case 0
ControlSend($hWnd, "", $hSlider, "{END}")
Case 1 To 99
Local $iCur = _GUICtrlSlider_GetPos($hSlider) - 100
Local $iNeed = $iLevel + $iCur, $iPGUPDN, $iUPDN
If Not $iNeed Then Return SetError(0, 1, 0)
If $iNeed > 0 Then
$iPGUPDN = Int($iNeed / 20)
If $iPGUPDN Then ControlSend($hWnd, "", $hSlider, "{PGUP " & $iPGUPDN & "}")
$iUPDN = $iNeed - $iPGUPDN * 20
If $iUPDN Then ControlSend($hWnd, "", $hSlider, "{UP " & $iUPDN & "}")
Else
$iNeed = Abs($iNeed)
$iPGUPDN = Int($iNeed / 20)
If $iPGUPDN Then ControlSend($hWnd, "", $hSlider, "{PGDN " & $iPGUPDN & "}")
$iUPDN = $iNeed - $iPGUPDN * 20
If $iUPDN Then ControlSend($hWnd, "", $hSlider, "{DOWN " & $iUPDN & "}")
EndIf
Case 100
ControlSend($hWnd, "", $hSlider, "{HOME}")
EndSwitch
EndFunc ;==>_SetVolumeLevel