1

Тема: Ahk: Управление MPC-HC

День добрый, снова выхожу на связь.

Нашел сообщение от teadrinker:
http://forum.script-coding.com/viewtopi … 69#p112669
Заинтересовался, а какую еще можно запросить информацию и как можно управлять плеером MPC-HC?
Особенно меня интересует:
-открытие плей листов
-сохранение плей листов
-сортировка плей листов
-перемешивание (randomize) файлов
-случайное воспроизведение (shiffle) файлов
-удаление текущего файла в корзину

Благодарю.

2 (изменено: svoboden, 2017-08-09 21:55:15)

Re: Ahk: Управление MPC-HC

Читайте. Также у MPC-HC есть свое api. Управлять MPC-HC можно с помощью сообщений.

3

Re: Ahk: Управление MPC-HC

Прочитал, покурил, читал мнение наших зарубежных товарищей. Прогресс пока не наметился.
На форуме я не первый день, так что, некоторые собеседники примерно представляют мой уровень владения предметом (не очень высокий).
Может быть уважаемый teadrinker напишет свой код с комментариями и если есть у кого какие наработки в этом вопросе, тоже выкладывайте. Любой информации буду рад.

4 (изменено: svoboden, 2017-08-13 14:33:05)

Re: Ahk: Управление MPC-HC

Да что там непонятного? Например, если код, который вы указали выше работает, то смотрите api, запрашиваете в коде, например, список аудиодорожек 0xA0003001 вместо 0xA0003002. Дальше, вместо 0x50000003 пишите, допустим, 0x50000005 (узнает список аудиодорожек) и заменяете параметры в MsgBox или еще где-нибудь для этой команды. Может еще CMD_PLAYMODE := 0x50000002 надо дописать.
P.S.
Может, я чего-нибудь пропустил, дальше сами додумайтесь.

5 (изменено: teadrinker, 2017-08-13 16:23:11)

Re: Ahk: Управление MPC-HC

upsi_daezium, согласен с предыдущим оратором. Принцип я показал, а других наработок нет. При создании своего скрипта пользовался только этим (там есть кое-какие комментарии). Если хотите получить

-открытие плей листов
-сохранение плей листов
-сортировка плей листов
-перемешивание (randomize) файлов
-случайное воспроизведение (shiffle) файлов
-удаление текущего файла в корзину

я бы только платно взялся, поскольку самому не нужно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

6

Re: Ahk: Управление MPC-HC

Лично я в апи не увидел работу с плей-листами.

7

Re: Ahk: Управление MPC-HC

Плохо посмотрел.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

8 (изменено: Malcev, 2017-08-13 20:34:23)

Re: Ahk: Управление MPC-HC

Приведи ссылку.
Вот, что вижу я:

// List of files in the playlist
    // Parameter 1: file path 0
    // Parameter 2: file path 1
    // ...
    // Parameter n: active file, -1 if no active file
    CMD_PLAYLIST            = 0x50000006,

    // Add a new file to playlist (did not start playing)
    // Parameter 1: file path
    CMD_ADDTOPLAYLIST       = 0xA0001000,

    // Remove all files from playlist
    CMD_CLEARPLAYLIST       = 0xA0001001,

    // Start playing playlist
    CMD_STARTPLAYLIST       = 0xA0001002,

    CMD_REMOVEFROMPLAYLIST  = 0xA0001003,   // TODO

    // Ask for the current playlist
    // return a CMD_PLAYLIST
    CMD_GETPLAYLIST         = 0xA0003003,

9

Re: Ahk: Управление MPC-HC

Так разве этого не достаточно?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

10

Re: Ahk: Управление MPC-HC

Ну а как там сделать, например, -случайное воспроизведение (shiffle) файлов?

11

Re: Ahk: Управление MPC-HC

Как-то можно, наверное. Там есть событие CMD_STATE, которое отправляется при открытии и закрытии файлов. По закрытию получаем список файлов плейлиста, стираем плейлист в плеере, полученный плейлист сортируем, создаём новый, стартуем. Ну это теория, я не пробовал.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

12 (изменено: Malcev, 2017-08-13 21:08:54)

Re: Ahk: Управление MPC-HC

Ну это костыли (это я к тому, что не увидел работу с плей-листами в апи) и к тому же Randomize.
А shuffle отличается от Randomize, тем, что список файлов в плейлисте не изменяется, а просто они проигрываются в случайном порядке.

13

Re: Ahk: Управление MPC-HC

Ещё есть команда CMD_SETINDEXPLAYLIST для установки активного трека в плейлисте, написано, что она DOESN'T WORK, но может уже работает, надо пробовать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

14

Re: Ahk: Управление MPC-HC

Randomize у меня так делает:

f11::
SetControlDelay -1
SetWinDelay -1
ControlClick, SysListView322,A,,R,,NA
WinWait, ahk_class #32768
ControlSend,,a
Return

15 (изменено: svoboden, 2017-08-15 00:35:38)

Re: Ahk: Управление MPC-HC

Зачем так? С помощью сообщений, наверное, можно легко установить этот Randomize, только их надо как-то отловить.

16

Re: Ahk: Управление MPC-HC

svoboden пишет:

наверное, можно легко установить этот Randomize

Жду вашего кода.

17 (изменено: svoboden, 2017-08-14 15:52:01)

Re: Ahk: Управление MPC-HC

Malcev пишет:

Жду вашего кода.

Там не очень просто отлавливать эти сообщения, например, отловить сообщение воспроизведение файла "SendMessage,0x0111,889,,,ahk_class MediaPlayerClassicW" у меня пока не выходит, хотя сообщение работает. Вывод: значит, есть где-то сообщение этого randomize. Просто мне не очень интересно разбираться с этим MPC-HC.

18

Re: Ahk: Управление MPC-HC

SendMessage,0x0111 - WM_COMMAND - это обращение к меню.
А в меню пункта randomize нету.

19

Re: Ahk: Управление MPC-HC

Так есть же сообщения для SysListView322.

20

Re: Ahk: Управление MPC-HC

А при чем тут SysListView322?
Отправлять надо в ahk_class #32768, а для это нужно дождаться его появления.

21 (изменено: svoboden, 2017-08-14 16:38:44)

Re: Ahk: Управление MPC-HC

Так вроде программа простая, в которой проходят сообщения еще. И что, разве нельзя как-нибудь добраться к этому меню данным способом?

22

Re: Ahk: Управление MPC-HC

Если вы хотите только отсортировать список, то можно попробовать отослать сообщение:
https://msdn.microsoft.com/en-us/librar … s.85).aspx
А потом проинформировать родительское окно об изменениях.

23 (изменено: svoboden, 2017-08-17 00:47:40)

Re: Ahk: Управление MPC-HC

Вот мой randomize, правда, его еще доделать надо, что мне вообще не хочется:

for v in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] {
Random, v, 0, 10
r = 430%v%
SendMessage,0x0111,r,,,ahk_class MediaPlayerClassicW
Exit
}
return

24 (изменено: Malcev, 2017-08-14 21:51:19)

Re: Ahk: Управление MPC-HC

У меня ваш код не работает.
Что именно вы пытаетесь сделать?
ИМХО если вы хотите изменить этот листбокс через сообщения, то единственный вариант получать DC и писать в память процесса, примерно как сделал teadrinker тут:
http://forum.script-coding.com/viewtopi … 42#p109142

25 (изменено: svoboden, 2017-08-17 00:46:38)

Re: Ahk: Управление MPC-HC

Нет.
• Навигация.
• Плейлист.
• Отлавливаете сообщения "SendMessage,0x111".
• И запускаете в случайном порядке, то есть, записываете случайную цифру в переменную тут 430%r%.

Запустите код еще раз. Если число совпадет, то аудиодорожка не поменяется, (но это можно исправить).
Так должно всегда работать:

1::
for v in [1,2,3,4,5,6,7,8,9,10] {
Random, v, 0, 10
r = 430%v%
SendMessage,0x0111,r,,,ahk_class MediaPlayerClassicW
}
return