Что нового

При прокручивании бегунка громкости - громкость не снижается

OlegSmirnov

Новичок
Сообщения
52
Репутация
0
Добрый вечер, уважаемые форумчане.
Помогите решить вопрос.

У меня есть скрипт, изменяющий положение бегунка - в программе "Динамике" (которая обычно - свернута в трей).
Мой скрипт - прокручивает бегунок до определенного уровня, а затем закрывает эту программу.
Но уровень звука - после этой операции - совершенно не изменяется.

Если делать ту же самую операцию вручную - то звук снижается нормально.
Подскажите - как заставить автоит - так снижать бегунок громкости звука, чтобы звук действительно снижал громкость ?
Код:
#include <GuiSlider.au3>

$iPID = Run('SndVol.exe')
$hWnd = WinWaitActive('[CLASS:#32770;TITLE:Микшер]')
$Vel = 70


$hSlider = ControlGetHandle($hWnd, '', '[CLASS:msctls_trackbar32;INSTANCE:3]') ;Двигает главный бегунок
$iStartPos = _GUICtrlSlider_GetPos($hSlider)
For $i = 0 To $Vel
    _GUICtrlSlider_SetPos($hSlider, $i)
    Sleep(10)
 Next

 $hSlider = ControlGetHandle($hWnd, '', '[CLASS:msctls_trackbar32;INSTANCE:1]') ;Двигает первый бегунок
$iStartPos = _GUICtrlSlider_GetPos($hSlider)
For $i = 0 To $Vel
    _GUICtrlSlider_SetPos($hSlider, $i)
    Sleep(10)
 Next

 $hSlider = ControlGetHandle($hWnd, '', '[CLASS:msctls_trackbar32;INSTANCE:2]') ;Двигает второй бегунок
$iStartPos = _GUICtrlSlider_GetPos($hSlider)
For $i = 0 To $Vel
    _GUICtrlSlider_SetPos($hSlider, $i)
    Sleep(10)
 Next

Sleep(2000)
ProcessClose($iPID)
 

Вложения

  • скрипт.au3
    935 байт · Просмотры: 2

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
OlegSmirnov сказал(а):
Подскажите - как заставить AutoIt - так снижать бегунок громкости звука, чтобы звук действительно снижал громкость ?

Попробуйте использовать ControlSend

Пример

Код:
Run('SndVol.exe')
$hWnd = WinWaitActive('[CLASS:#32770;TITLE:Микшер]')
$iVel = 70
$hSlider = ControlGetHandle($hWnd, '', '[CLASS:msctls_trackbar32;INSTANCE:3]') ;Двигает главный бегунок
Sleep(1000)

ControlSend($hWnd, "", $hSlider, "{HOME}") ;100
Sleep(1000)
MsgBox(0, "Volume", "{HOME}")

ControlSend($hWnd, "", $hSlider, "{END}") ;0
Sleep(1000)
MsgBox(0, "Volume", "{END}")

ControlSend($hWnd, "", $hSlider, "{PGUP}") ;+20
Sleep(1000)
MsgBox(0, "Volume", "{PGUP}")

ControlSend($hWnd, "", $hSlider, "{PGDN}") ;-20
Sleep(1000)
MsgBox(0, "Volume", "{PGDN}")

ControlSend($hWnd, "", $hSlider, "{UP}") ;+1
Sleep(1000)
MsgBox(0, "Volume", "{UP}")

ControlSend($hWnd, "", $hSlider, "{DOWN}") ;-1
Sleep(1000)
MsgBox(0, "Volume", "{DOWN}")

ControlSend($hWnd, "", $hSlider, "{UP " & $iVel & "}") ;+$iVel
Sleep(1000)
MsgBox(0, "Volume", "{UP 70}")

Sleep(1000)
WinClose($hWnd)
 
Автор
O

OlegSmirnov

Новичок
Сообщения
52
Репутация
0
Понял, буду разбираться.
Спасибо за ответ.
 
Верх