IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Управление WinAmp из других программ (https://www.imho.ws/showthread.php?t=54581)

EnigMan 23.03.2004 19:29

Управление WinAmp из других программ
 
Хочу написать прогу для управления Winamp-ом из другой проги. Но есть Несколько проблем
1. Как я понимаю управлять можно через посылку системного сообщения WinAmpу, но где взять сами команды
2. Как эти команды отправлять (я в общем-то самоучка, освоил C++ Bilder 6)

Спасибо за помощь

RaZEr 23.03.2004 19:39

http://www.winamp.com/nsdn/winamp/sdk/

EnigMan 24.03.2004 17:30

За ссылочку спасибочки, команды нашел. осталась небольшая проблемка. Как заполучить hWnd WinAmp'а (или его Handler, ну в общем тот системный идентификатор с которым ВинАмп запускается и по которому надо отправлять сообщение функцией SendMessage(hWnd,...))я так и не понял, а без него как с ним свяжешся :(

/7y3uK 24.03.2004 18:52

Вот, к примеру, если в SDK класс описан, то окно можно отыскать:

procedure TForm1.Button1Click(Sender: TObject);
var
H : HWND; // ссылка на окно
begin
H := FindWindow ('TForm1', 'Form1'); // ищем окно, (класс окна, caption окна)
If H <> 0 then ShowMessage ('Есть Form1!') // окно найдено
else ShowMessage ('Нет Form1!') // окно не найдено
end;

EnigMan 24.03.2004 20:38

Не знаю, может плохо искал, но в SDK описание класса не нашел.
Думаю есть ещЕ функции, аналоги системной команды tasklist? может они помогут.
И вообще, может SendMessage может передавать сообщения только между родителями и потомками (хотя наверно ошибаюсь)

ReapeR 25.03.2004 13:15

EnigMan
не знаю как в билдере, но я писал управление винампом из дельфей (если надо могу исходники выслать).
окно ищется как findwindow(nil,'winamp v1.x') название класса окна точно не помню, но можешь посмотреть с помощью проги winsight32. в билдере она тоже скорее всего есть (borland же)

mosh 25.03.2004 20:55

Цитата:

Первоначальное сообщение от EnigMan
...осталась небольшая проблемка. Как заполучить hWnd WinAmp'а (или его Handler, ну в общем тот системный идентификатор с которым ВинАмп запускается и по которому надо отправлять сообщение функцией SendMessage(hWnd,...))я так и не понял, а без него как с ним свяжешся :(
Я бы сделал так:
char name[]="Winamp 5.0"; или
char name[]="Winamp 3"; или....какие там ещё есть версии? :)
HWND ag=FindWindow(NULL,name);
Немного криво, но 100% работает!

vovik 25.03.2004 21:06

Не знаю какое нужно управление, но на офсайте я скачал плагинчи, который размещает кнопки пуск, пауза, вперед/назад и информацию о треке в активном на данный момент окне рядом с крестиком - удобно.
Или тебе надо чтобы не ты а сама прога управляла винампом?

EnigMan 25.03.2004 22:48

Собственно такая прога понадобилась, чтобы расширить функциональность навороченной клавы от Genius, а то эти товарищи поддерживают только Windows Media Player :(
Цитата:

не знаю как в билдере, но я писал управление винампом из дельфей
У Bilder и Делфи вообще много общего: функции, библиотеки, компоненты... так что твои исходники пригодились бы...

Добавлено через 1 час и 30 минут:
Ага!!! кажется нашел.
Только в Bilder надо подключить модуль winuser.h
А выглядит это так
  • HWND hhh;
    hhh=FindWindowA("Winamp v1.x",NULL);


Часовой пояс GMT +4, время: 05:59.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.