Что нового

Автоматизация Скрипт для отслеживания плеера AIMP5.

SiarheiLehlik

Новичок
Сообщения
3
Репутация
0
Autoil v 3.3.14.5
Windows XP.

Нужен скрипт, который после запуска будет отслеживать состояние плеера Aimp5 и записывать в текстовый файл.

Отслеживаются две кнопки Aimp, кнопка "Повтор файла" и "Случайный файл".

При запуске пллера скрипт проверяет наличие текстового файла (допустим aimp.txt), если такого файла не, то создаёт.

Информация в файл заносится в две строки.
В первую строку - состояние кнопки "Повтор файла". Если кнопка нажата, записывается символ "L", если не нажата - пустая строка.
Во вторую строку - состояние кнопки "Случайный файл". Если кнопка нажата, записывается символ "R" во вторую строку, если не нажата - пустая строка.

При закрытии плеера обе строки пустые.
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
Код:
#include <SendMessage.au3>
#include <File.au3>

Const $AIMPRemoteAccessClass = "AIMP2_RemoteInfo"
Const $WM_USER = 0x0400
Const $WM_AIMP_PROPERTY = $WM_USER + 0x77
Const $AIMP_RA_PROPVALUE_GET = 0
Const $AIMP_RA_PROPERTY_TRACK_REPEAT = 0x70
Const $AIMP_RA_PROPERTY_TRACK_SHUFFLE = 0x80
Global $TRACK_REPEAT, $TRACK_SHUFFLE
Global $AIMP_FILE = @ScriptDir & '\aimp.txt'

If Not FileExists($AIMP_FILE) Then _FileCreate($AIMP_FILE)

While 1
    Sleep(100)
    If ProcessExists('aimp.exe') Then
        While ProcessExists('aimp.exe')
            Sleep(1000)
            _Work()
        WEnd
        _FileWriteToLine($AIMP_FILE, 1, '', 1)
        _FileWriteToLine($AIMP_FILE, 2, '', 1)
    EndIf
WEnd

Func _Work()
    $TRACK_REPEAT = _SendMessage(WinGetHandle($AIMPRemoteAccessClass), $WM_AIMP_PROPERTY, $AIMP_RA_PROPVALUE_GET + $AIMP_RA_PROPERTY_TRACK_REPEAT, 0)
    $TRACK_SHUFFLE = _SendMessage(WinGetHandle($AIMPRemoteAccessClass), $WM_AIMP_PROPERTY, $AIMP_RA_PROPVALUE_GET + $AIMP_RA_PROPERTY_TRACK_SHUFFLE, 0)
    If $TRACK_REPEAT = 0 Then
        _FileWriteToLine($AIMP_FILE, 1, '', 1)
    Else
        _FileWriteToLine($AIMP_FILE, 1, 'L', 1)
    EndIf
    If $TRACK_SHUFFLE = 0 Then
        _FileWriteToLine($AIMP_FILE, 2, '', 1)
    Else
        _FileWriteToLine($AIMP_FILE, 2, 'R', 1)
    EndIf
EndFunc
 
Автор
S

SiarheiLehlik

Новичок
Сообщения
3
Репутация
0
Спасибо большое.
Буду пробовать.
Сообщение автоматически объединено:

Проверил. К сожалению не работает.
При запуске скрипта из папки Aimp, создаётся файл aimp.txt.
Открываю файл - чисто, никаких символов нет.
Запускаю Aimp, проверяю файл - чисто.
Включаю в Aimp кнопку "Повтор файла", проверяю файл - чисто.
Включаю в Aimp кнопку "Случайный файл", проверяю файл - чисто.
При выключении кнопок тоже чисто.
 
Последнее редактирование:

Khaibit

Осваивающий
Сообщения
103
Репутация
25
Проверил. К сожалению не работает.
Перед проверкой удалите aimp.txt
Код:
#include <SendMessage.au3>
#include <File.au3>

Const $AIMPRemoteAccessClass = "AIMP2_RemoteInfo"
Const $WM_USER = 0x0400
Const $WM_AIMP_PROPERTY = $WM_USER + 0x77
Const $AIMP_RA_PROPVALUE_GET = 0
Const $AIMP_RA_PROPERTY_TRACK_REPEAT = 0x70
Const $AIMP_RA_PROPERTY_TRACK_SHUFFLE = 0x80
Global $TRACK_REPEAT, $TRACK_SHUFFLE
Global $AIMP_FILE = @ScriptDir & '\aimp.txt'

If Not FileExists($AIMP_FILE) Then
    _FileCreate($AIMP_FILE)
    FileWriteLine($AIMP_FILE, ' ')
    FileWriteLine($AIMP_FILE, ' ')
EndIf

While 1
    Sleep(100)
    If ProcessExists('aimp.exe') Then
        While ProcessExists('aimp.exe')
            Sleep(1000)
            _Work()
        WEnd
        _FileWriteToLine($AIMP_FILE, 1, ' ', 1)
        _FileWriteToLine($AIMP_FILE, 2, ' ', 1)
    EndIf
WEnd

Func _Work()
    $TRACK_REPEAT = _SendMessage(WinGetHandle($AIMPRemoteAccessClass), $WM_AIMP_PROPERTY, $AIMP_RA_PROPVALUE_GET + $AIMP_RA_PROPERTY_TRACK_REPEAT, 0)
    $TRACK_SHUFFLE = _SendMessage(WinGetHandle($AIMPRemoteAccessClass), $WM_AIMP_PROPERTY, $AIMP_RA_PROPVALUE_GET + $AIMP_RA_PROPERTY_TRACK_SHUFFLE, 0)
    If $TRACK_REPEAT = 0 Then
        _FileWriteToLine($AIMP_FILE, 1, ' ', 1)
    Else
        _FileWriteToLine($AIMP_FILE, 1, 'L', 1)
    EndIf
    If $TRACK_SHUFFLE = 0 Then
        _FileWriteToLine($AIMP_FILE, 2, ' ', 1)
    Else
        _FileWriteToLine($AIMP_FILE, 2, 'R', 1)
    EndIf
EndFunc
 
Последнее редактирование:
Автор
S

SiarheiLehlik

Новичок
Сообщения
3
Репутация
0
Добрый день!
Проверил.
Работает только кнопка "Повтор файла".
Кнопка "Случайный файл" не работает.
Сообщение автоматически объединено:

Работает!
Спасибо большое!
 
Последнее редактирование:
Верх