Тема: AHK: Управление аудио-плеером Вконтакте
Возможно ли такое вообще? Ну в смысле определить "какие-то" значения кнопок у веб страницы, а потом нажимать их горячими клавишами, в фоне.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Возможно ли такое вообще? Ну в смысле определить "какие-то" значения кнопок у веб страницы, а потом нажимать их горячими клавишами, в фоне.
Совсем недавно писал себе скрипт переключения треков вперед/назад.
Использовал ahk.com + ahk basic
Скрипт случайно удалил.
Всё сводится к исполнению javascript кода
audioPlayer.nextTrack();
и
audioPlayer.prevTrack();
Будет время напишу еще раз. Там 5 строк.
Остальные функции не нашел как вызывать.
В сумме с
random, out, 1, 10
loop % n
; тут послать код audioPlayer.nextTrack();
Получается некий shuffle.
Если есть люди, хорошо разбирающиеся в javascript, думаю вызвать остальные функции проблем не будет.
Если никто не против, помещу в отдельный пост.
Это конечно не 5 строк, но работает корректно. Предыдущий скрипт, просто работал с первой вкладкой Internet Explorer, этот же работает с первой вкладкой, в которой загружен Вконтакте.
Как уже стало понятно, слушать надо музыку через Internet Explorer.
Скрипт для ahk basic.
Необходим com.ahk (скачать). Com.ahk необходимо поместить в %A_MyDocuments%\AutoHotkey\Lib\
#NoEnv
SetTitleMatchMode 2
#right:: ; 1 трек вперед
Com_init()
COM_Invoke(pwb:=VK_IEGet(), "Navigate", "javascript:audioPlayer.nextTrack();")
COM_Release( pwb )
COM_Term()
return
#left:: ; 1 трек назад
Com_init()
COM_Invoke(pwb:=VK_IEGet(), "Navigate", "javascript:audioPlayer.prevTrack();")
COM_Release( pwb )
COM_Term()
return
#!right:: ; от 1 до 15 треков вперед (случайно)
Com_init()
pwb:=VK_IEGet()
Random, r, 1, 15
Loop % r
{
COM_Invoke(pwb, "Navigate", "javascript:audioPlayer.nextTrack();")
sleep 50
}
COM_Release( pwb )
COM_Term()
return
#!left:: ; от 1 до 15 треков назад (случайно)
Com_init()
pwb:=VK_IEGet()
Random, r, 1, 15
Loop % r
{
COM_Invoke(pwb, "Navigate", "javascript:audioPlayer.prevTrack();")
sleep 50
}
COM_Release( pwb )
COM_Term()
return
#Numpadadd:: ; добавить в избранное
Com_init()
COM_Invoke(pwb:=VK_IEGet(), "Navigate", "javascript:audioPlayer.addCurrentTrack();")
COM_Release( pwb )
COM_Term()
return
#NumpadMult:: ; переключить повторение
Com_init()
COM_Invoke(pwb:=VK_IEGet(), "Navigate", "javascript:audioPlayer.toggleRepeat();")
COM_Release( pwb )
COM_Term()
return
#NumpadDiv:: ; перемешать список (позже заметил эту функцию, поэтому переключение 1-15 треков может быть не актуально)
Com_init()
COM_Invoke(pwb:=VK_IEGet(), "Navigate", "javascript:Audio.mixAudios();")
COM_Release( pwb )
COM_Term()
return
VK_IEGet()
{
oShell := COM_CreateObject( "Shell.Application" )
Loop, % COM_Invoke( oShell, "Windows.Count" )
{
If pwb := COM_Invoke( oShell, "Windows.item[" A_Index-1 "]" )
If ( ( InStr( COM_Invoke( pwb, "LocationUrl" ), "vkontakte.ru")
or InStr( COM_Invoke( pwb, "LocationUrl" ), "vk.com") )
&& InStr( COM_Invoke( pwb, "FullName" ), "iexplore.exe" ) )
Break
COM_Release( pwb ), pwb := ""
}
COM_Release( oShell )
Return, pwb
}
Спасибо. С другими браузерами его ни как не подружить?
С Оперой и Фаерфоксом в таком виде работать не будет. Максимум, что можно сделать, это посылать javascript код в адресную строку напрямую командой send. Но это требует, что бы окно браузера было активно, и была открыта вкладка Вконтакте.
Еще моно попробовать controlsend.
Если будет время, попробую сделать.
Но я не вижу смысла извращаться с другими браузерами, если есть отличный способ решения для IE. Никто же не заставляет работать именно с ним. В IE можно просто открыть аудиозаписи Вконтакте и слушать их. А остальные действия с другими сайтами или же с самим Вконтакте выполнять через свой любимый браузер.
Есть вот такое приложение с исходниками на Purebasic'е, можно перевести на AutoHotkey, но если язык не важен, а важен результат, то берём и пользуемся Музыка в Vkontakte.ru
InFlames, при активном на весь экран приложении, например игры, переключение треков становиться невозможным.
Ark, ты про скрипт из поста №3?
Если да, то у меня всё работает.
Ах да, пардон, не знаю как так получилось.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться