IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Дружит ли Дельфи с Винампом?
сообщение
Сообщение #1


Гость






Как из Delphi-приложения можно управлять Winamp-ом?
Например, при нажатии кнопки запускется и начинает играть.

У меня где-то валяется mp-3 диск с автораном написанном на Delphi.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


procedure TUsrForm.PrevBtnClick(Sender: TObject);
var h : hWnd;
begin
  h:=findwindow('Winamp v1.x',nil);
  sendmessage(h,WM_COMMAND,40044,0); //Prev track
end;
procedure TUsrForm.PauseBtnClick(Sender: TObject);
var h : hWnd;
begin
  h:=findwindow('Winamp v1.x',nil);
  sendmessage(h,WM_COMMAND,40046,0); // Pauseunpause
end;

procedure TUsrForm.NextBtnClick(Sender: TObject);
var h : hWnd;
begin
  h:=findwindow('Winamp v1.x',nil);
  sendmessage(h,WM_COMMAND,40048,0); //Next track
end;

Еще таких команд можно найти в инете, где-то на сайте Нуллсофта, вроде... правда, там примеры под С++, но оно неважно...

Запускать можно так:
WinExec(PChar(WinAMPPath+' "'+PathToPls+'"'),1);

,где WinAmpPath - путь к ВинАмпу, PathToPls - путь к плейлисту. Запустится и загрузит этот плейлист.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 156
Пол: Мужской

Репутация: -  0  +


http://jvcl.sourceforge.net - там есть библиотека jvcl - содержит в том числе и набор компонентов по управлению winAMP


--------------------
With the best regards Vit

Все всегда уезжают навсегда. Вернуться невозможно-вместо нас всегда возвращается кто-то другой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Terminator, огромное спасибо тебе, большому железному товарищю!
Всё фурычит как надо.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 84
Пол: Мужской

Репутация: -  2  +


;D Конечно!

Приветствую Вас, Кирилл!

program WAHotKeys;
uses Windows, Messages;
ResourceString RC_Winamp = 'Winamp v1.x';
ResourceString RC_Winamp3 = 'BaseWindow_RootWnd';

const
Num = 13;
Spec = Num - 10;
keys: array[1..Num] of byte = (byte('X'), byte('V'), byte('C'), byte('B'),
byte('Z'), byte('L'), VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN,
byte('Q'), byte('S'), byte('N'));
var
msg: TMsg;
id: array[1..Num] of integer;
st: string;
WA3, handle: THandle;
i, key: integer;
begin
handle:= GetModuleHandle('WAHotKeys');
st:= 'hk ';
for i:= 1 to Num do
begin
st[3]:= char(64+i);
id[i]:= GlobalAddAtom(PAnsiChar(st));
RegisterHotKey(handle, id[i], MOD_WIN, keys[i]);
end;
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
WA3:= findwindow(PAnsiChar(RC_Winamp3), nil); // WinAmp3 window
if WA3=0 then WA3:=findwindow(PAnsiChar(RC_Winamp), nil); // WinAmp window
if (WA30) then
begin
if ((msg.LParam shl 16) shr 16)=MOD_WIN then
begin // MOD_WIN
key:= (msg.LParam shr 16);
if key=byte('S') then
begin
if IsWindowVisible(WA3) then ShowWindow(WA3, sw_minimize)
else ShowWindow(WA3, sw_restore);
end else
if key=byte('N') then
begin
postmessage(WA3, wm_keydown, byte('B'), 0);
postmessage(WA3, wm_keyup, byte('B'), 0);
end else
if key=byte('Q') then
begin // UnRegisterHotKeys
for i:= 1 to Num do UnRegisterHotKey(handle, id[i]);
Halt(Msg.wParam);
end else
begin
for i:= 1 to (Num-Spec) do
begin // for i
if key=keys[i] then
begin
postmessage(WA3, wm_keydown, keys[i], 0);
postmessage(WA3, wm_keyup, keys[i], 0);
end;
end; // for i
end;
end; // MOD_WIN
end;
DispatchMessage(Msg);
end;
Halt(Msg.wParam);
end.

эта прграмма позволяет управлять винампом. измените код. надеюсь у вас получится


--------------------
* Origin: "It's MY LIFE!!! © Jhon Bon Jovi"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 5:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name