Переклад Zёbra Inc. (Тобто мій)
Додатки для програмування інтерфейсу WinAmp
Використання командного рядка дл яуправленія Winamp
Найпростіший і легкий спосіб керувати Winamp - використання winamp.exe з різними командними опціями в рядку. Ви можете робити різні речі, наприклад:
C: \ шлях \ к \ winamp \ winamp.exe / ADD C: \ mp3
(Додає C: \ mp3 \ любой.mp3 в playlist запущеного Winamp'а, в іншому випадку відкриває Winamp і починає програвати)
C: \ шлях \ к \ winamp \ winamp.exe / NEW
(Запускає новий Winamp, навіть якщо Winamp вже запущений)
C: \ шлях \ к \ winamp \ winamp.exe C: \ mp3 \ file.mp3
(Грає файл C: \ mp3 \ file.mp3, незалежно від того, чи запущений Winamp, чи ні)
C: \ шлях \ к \ winamp \ winamp.exe / CLASS = "myclassname"
(Відкриває Winamp в іншому віконному класі з ім'ям "myclassname")
Як ви могли помітити, ваші можливості в командному рядку обмежені, але з цього легко почати. Ви також можете призначати безліч файлів і / або папок в командному рядку, наприклад:
C: \ шлях \ к \ winamp \ winamp.exe / NEW "C: \ my mp3s" "C: \ bigplaylist.pls" "C: \ download \ new song.mp3"
Використання Windows повідомлень для управління Winamp'ом
Призначення Winamp вікна
Winamp - 32-бітове Windows додаток. Ось основні знання про програмування 32 бітного програмування. Ви можете контролювати Winamp використовуючи систему Windows повідомлень. Перш ніж почати відправку повідомлень, ви повинні визначитися з Window Handle. Є два основних способи, один для зовнішніх програм, інший для плагінів. Модулі просто проходять HWND до Winamp в їх відповідних структурах. Мінлива зазвичай називається hwndWinamp або hwndParent.
Зовнішні програми можуть виявити Winamp, використовуючи такі шматки коду:
C / C ++:
HWND hwndWinamp = FindWindow ( "Winamp v1.x", NULL);
VBasic:
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim hwndWinamp as long
hwndWinamp = FindWindow ( "Winamp v1.x", vbNullString)
Delphi Pascal:
var hwndWinamp. THandle;
hwndWinamp: = FindWindow ( 'Winamp v1.x', nil);
Даний код використовує функцію FindWindow () для знаходження вікна з заголовком "Winamp v1.x". Всі версії Winamp 1.x і 2.x мають клас "Winamp v1.x", якщо не змінювати / CLASS = (див. Вище). Зауважте, якщо ви хочете запускати кілька Winamp'ов і розрізняти їх ви можете використовувати / CLASS = перемикання.
WM_USER Повідомлення
WM_USER повідомлення відправляються за допомогою SendMessage (). У C / C ++, ви можете відправляти дані повідомлення за допомогою:
int ret = SendMessage (hwndWinamp, WM_USER, дані, id);
Дані використовуються безліччю повідомлень, але не всіма. Для таких повідомлень, в яких значення даних meaning не визначене, просто використовуйте 0.
Тут список поточних підтримуваних id'ов, які ви можете використовувати з плагінів Winamp або з інших додатків. (Див. WM_USER повідомлення для плагінів нижче):
0 Визначає версію запущеного Winamp. Версії будуть 0x20yx для 2.yx. Хороший спосіб визначити потрібне вікно і т.д.
100 Починає програвати список відтворення. Майже те ж саме, що і 'play' в Winamp, але все-таки не те.
101 Очищення списку відтворення.
102 Відтворення обраного треку.
103 Змушує Winamp змінити папку на C: \\ download
104 Повертає статус відтворення. Якщо 'ret' дорівнює 1, Winamp грає. Якщо 'ret' дорівнює 3, Winamp на паузі. В іншому випадку відтворення зупиняється.
105 Якщо дані рівні 0, позиція відтворення в мілісекундах. Якщо - 1, позиція відтворення в секундах. Повернення в -1, якщо не програється або виникли помилки.
106 Пошук місця в треку. Дані повинні бути в мілісекундах.
120 Збереження списку відтворення в Winampdir \ winamp.m3u, і повернення в поточний стан в списку.
121 Налаштування положення в списку відтворення на позицію, зазначену в 'даних'.
122 Налаштування звуку відповідно до 'даними', які можуть бути між 0 (тиша) і 255 (максимум).
123 Налаштування балансу відповідно до 'даними', які можуть бути між 0 (ліво) і 255 (право).
124 Повернення довжини поточного списку відтворення в треках.
125 Повернення позиції в поточному списку відтворення в треках (потрібно Winamp 2.05+).
126 Витяг інформації про поточний трек: Частота (тобто 44100), якщо 'дані' рівні 0, бітрейт, якщо 'дані' рівні 1, і число канналов, якщо 'дані' рівні 2. (потрібно Winamp 2.05+)