Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Как передвинуть слайдер в медиапроигрывателе на n секунд вперед/назад? (http://forum.oszone.net/showthread.php?t=157180)

evg64 15-11-2009 21:01 1271198

Как передвинуть слайдер в медиапроигрывателе на n секунд вперед/назад?
 
Вложений: 1
Добрый день! Есть такой скрипт:

Код:

HotkeySet("{F1}","SetSlider")
$name="Медиа-проигрыватель VLC"
while 1
sleep(500)
wend

Func SetSlider($iSec)
; что тут написать, чтобы двигать контрол на $iSec секунд назад?
 EndFunc

Доступ к контролу можно получить, написав в качестве ID "[CLASS:QWidget; INSTANCE:24]". Но какой функцией слайдер подвинуть и как узнать его текущую позицию я не знаю.
Прикрепляю принтскрин контрола.
P.S. Я тут заметил, что если плеер перезапустить, в АйДи контрола INSTANCE: меняется. Пока не берем это во внимание, считаем INSTANCE всегда равной 24 :)

Creat0R 16-11-2009 00:07 1271336

А используя горячие клавиши не подходит?
Например так:
Код:

HotKeySet("{ESC}", "Quit")
HotKeySet("{F1}", "SetSlider")

While 1
    Sleep(500)
WEnd

Func SetSlider()
    ControlSend("[CLASS:wxWindowClassNR]", "", "msctls_trackbar321", "+{Right}")
EndFunc

Func Quit()
    Exit
EndFunc


Creat0R 16-11-2009 00:39 1271360

А если напрямую, тогда можно так:

Код:

#include <GUISlider.au3>

Global $iSecs = 5

HotKeySet("{ESC}", "Quit")
HotKeySet("{F1}", "SetSlider")

While 1
    Sleep(100)
WEnd

Func SetSlider()
    $hVLC = ControlGetHandle("[CLASS:wxWindowClassNR]", "", "msctls_trackbar321")
    _GUICtrlSlider_SetPos($hVLC, _GUICtrlSlider_GetPos($hVLC)+$iSecs)
    ControlSend("[CLASS:wxWindowClassNR]", "", "msctls_trackbar321", "^+{Right}")
EndFunc

Func Quit()
    Exit
EndFunc


evg64 16-11-2009 07:45 1271477

Цитата:

Цитата Creat0R
А используя горячие клавиши не подходит? »

Не знаю почему, но у меня shift, alt, ctrl (и кстати буквы тоже) через автоит вообще не посылаются. Работают только цифры, F1-F12 и некоторые другие.

Цитата:

Цитата Creat0R
А если напрямую, тогда можно так: »

Не работает. Попробовал еще вписать туда "msgbox(0,0,_GUICtrlSlider_GetPos($hVLC))" - функция позицию слайдера не выдает, пишет 0. То ли в хэндле, то ли в слайдере дело... - пока не знаю, посмотрю еще вечером.


Время: 00:59.

Время: 00:59.
© OSzone.net 2001-