1

Тема: AHK: Управление аудио-плеером Вконтакте

Возможно ли такое вообще? Ну в смысле определить "какие-то" значения кнопок у веб страницы, а потом нажимать их горячими клавишами, в фоне.

2 (изменено: InFlames, 2011-07-13 23:03:13)

Re: AHK: Управление аудио-плеером Вконтакте

Совсем недавно писал себе скрипт переключения треков вперед/назад.
Использовал ahk.com + ahk basic
Скрипт случайно удалил.
Всё сводится к исполнению javascript кода

audioPlayer.nextTrack();

и

audioPlayer.prevTrack();

Будет время напишу еще раз. Там 5 строк.
Остальные функции не нашел как вызывать.

В сумме с

random, out, 1, 10
loop % n
 ; тут послать код audioPlayer.nextTrack();

Получается некий shuffle.
Если есть люди, хорошо разбирающиеся в javascript, думаю вызвать остальные функции проблем не будет.

3 (изменено: InFlames, 2011-07-14 00:31:40)

Re: AHK: Управление аудио-плеером Вконтакте

Если никто не против, помещу в отдельный пост.
Это конечно не 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
}

4

Re: AHK: Управление аудио-плеером Вконтакте

Спасибо. С другими браузерами его ни как не подружить?

5

Re: AHK: Управление аудио-плеером Вконтакте

С Оперой и Фаерфоксом в таком виде работать не будет. Максимум, что можно сделать, это посылать javascript код в адресную строку напрямую командой send. Но это требует, что бы окно браузера было активно, и была открыта вкладка Вконтакте.
Еще моно попробовать controlsend.
Если будет время, попробую сделать.
Но я не вижу смысла извращаться с другими браузерами, если есть отличный способ решения для IE. Никто же не заставляет работать именно с ним. В IE можно просто открыть аудиозаписи Вконтакте и слушать их. А остальные действия с другими сайтами или же с самим Вконтакте выполнять через свой любимый браузер.

6

Re: AHK: Управление аудио-плеером Вконтакте

Есть вот такое приложение с исходниками на Purebasic'е, можно перевести на AutoHotkey, но если язык не важен, а важен результат, то берём и пользуемся Музыка в Vkontakte.ru

7

Re: AHK: Управление аудио-плеером Вконтакте

InFlames, при активном на весь экран приложении, например игры, переключение треков становиться невозможным.

8

Re: AHK: Управление аудио-плеером Вконтакте

Ark, ты про скрипт из поста №3?
Если да, то у меня всё работает.

9

Re: AHK: Управление аудио-плеером Вконтакте

Ах да, пардон, не знаю как так получилось.