| imho.ws |
![]() |
|
|
|
# 1 |
|
Member
Регистрация: 21.11.2003
Адрес: 45-я параллель
Пол: Male
Сообщения: 230
![]() |
Управление WinAmp из других программ
Хочу написать прогу для управления Winamp-ом из другой проги. Но есть Несколько проблем
1. Как я понимаю управлять можно через посылку системного сообщения WinAmpу, но где взять сами команды 2. Как эти команды отправлять (я в общем-то самоучка, освоил C++ Bilder 6) Спасибо за помощь
__________________
Никогда не спорьте с идиотом. Сначала он опустит вас до своего уровня, а потом выиграет, так как у него большой опыт
|
|
|
|
|
# 3 |
|
Member
Регистрация: 21.11.2003
Адрес: 45-я параллель
Пол: Male
Сообщения: 230
![]() |
За ссылочку спасибочки, команды нашел. осталась небольшая проблемка. Как заполучить hWnd WinAmp'а (или его Handler, ну в общем тот системный идентификатор с которым ВинАмп запускается и по которому надо отправлять сообщение функцией SendMessage(hWnd,...))я так и не понял, а без него как с ним свяжешся
__________________
Никогда не спорьте с идиотом. Сначала он опустит вас до своего уровня, а потом выиграет, так как у него большой опыт
Последний раз редактировалось EnigMan; 24.03.2004 в 17:33. |
|
|
|
|
# 4 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Вот, к примеру, если в 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;
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|
|
|
|
# 5 |
|
Member
Регистрация: 21.11.2003
Адрес: 45-я параллель
Пол: Male
Сообщения: 230
![]() |
Не знаю, может плохо искал, но в SDK описание класса не нашел.
Думаю есть ещЕ функции, аналоги системной команды tasklist? может они помогут. И вообще, может SendMessage может передавать сообщения только между родителями и потомками (хотя наверно ошибаюсь)
__________________
Никогда не спорьте с идиотом. Сначала он опустит вас до своего уровня, а потом выиграет, так как у него большой опыт
|
|
|
|
|
# 6 |
|
Advanced Member
Регистрация: 08.08.2002
Адрес: Nab. Chelny, Tatarstan
Сообщения: 447
![]() ![]() ![]() |
EnigMan
не знаю как в билдере, но я писал управление винампом из дельфей (если надо могу исходники выслать). окно ищется как findwindow(nil,'winamp v1.x') название класса окна точно не помню, но можешь посмотреть с помощью проги winsight32. в билдере она тоже скорее всего есть (borland же)
__________________
-=Nomen est Omen=- |
|
|
|
|
# 7 | |
|
Mosherator
Регистрация: 29.10.2002
Адрес: Moshcow
Сообщения: 1 201
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
char name[]="Winamp 5.0"; или char name[]="Winamp 3"; или....какие там ещё есть версии? ![]() HWND ag=FindWindow(NULL,name); Немного криво, но 100% работает! |
|
|
|
|
|
# 8 |
|
IMHO Ворчун-2006
Регистрация: 24.03.2003
Адрес: Москва
Пол: Male
Сообщения: 4 651
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Не знаю какое нужно управление, но на офсайте я скачал плагинчи, который размещает кнопки пуск, пауза, вперед/назад и информацию о треке в активном на данный момент окне рядом с крестиком - удобно.
Или тебе надо чтобы не ты а сама прога управляла винампом? |
|
|
|
|
# 9 | |
|
Member
Регистрация: 21.11.2003
Адрес: 45-я параллель
Пол: Male
Сообщения: 230
![]() |
Собственно такая прога понадобилась, чтобы расширить функциональность навороченной клавы от Genius, а то эти товарищи поддерживают только Windows Media Player
![]() Цитата:
Добавлено через 1 час и 30 минут: Ага!!! кажется нашел. Только в Bilder надо подключить модуль winuser.h А выглядит это так
__________________
Никогда не спорьте с идиотом. Сначала он опустит вас до своего уровня, а потом выиграет, так как у него большой опыт
|
|
|
|