|
dWinamp:HWND;//Winamp窗口的句柄 implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin hwndWinamp := FindWindow(''''Winamp v1.x'''',0); //得到Winamp的句柄 If hwndWinamp = 0 Then //判断Winamp是否运行 begin ShowMessage(''''请启动Winamp先!''''); Application.Terminate ; end end;
procedure TForm1.Button1Click(Sender: TObject); begin //让Winamp跳到下一首音乐 SendMessage(hwndWinamp, WM_COMMAND, IPC_WINAMP_NextTrackButton,0); end;
procedure TForm1.Button2Click(Sender: TObject); begin //让Winamp播放当前Mp3 SendMessage(hwndWinamp, WM_COMMAND, IPC_WINAMP_PlayButton,0); end;
procedure TForm1.Button3Click(Sender: TObject); begin //让Winamp暂停当前Mp3 SendMessage(hwndWinamp, WM_COMMAND, IPC_WINAMP_PauseUnpauseButton,0); end;
end.
2.WM_USER 消息:
例程:得到Winamp的版本
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,StrUtils;//使用StrUtils才能用LeftStr,RightStr,MidStr等函数
Const WA_GETVERSION:integer = 0;//Winamp的版本
type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; hwndWinamp:HWND;//Winamp窗口的句柄 implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin hwndWinamp := FindWindow(''''Winamp v1.x'''',0); //得到Winamp的句柄 If hwndWinamp = 0 Then //判断Winamp是否运行 begin ShowMessage(''''请启动Winamp先!''''); Application.Terminate ; end end;
procedure TForm1.Button1Click(Sender: TObject); var VersionNum : integer; ReturnVersion : String; begin VersionNum := SendMessage(hwndWinamp, WM_USER, 0, WA_GETVERSION); If Length(IntToHex(VersionNum,4)) > 3 Then begin ReturnVersion := LeftStr(IntToHex(VersionNum,4), 1) + ''''.'''' ; ReturnVersion := ReturnVersion + MidStr(IntToHex(VersionNum,4), 2, 1); ReturnVersion := ReturnVersion + RightStr(IntToHex(VersionNum,4),
Length(IntToHex(VersionNum,4)) - 3); end Else ReturnVersion := ''''UNKNOWN'''';
ShowMessage(ReturnVersion); end;
end.
3.WM_COPYDATA 消息:
例程:Winamp的运行时刻在播放列表中加入一首Mp3的歌曲
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
Const IPC_PLAYFILE:integer = 100 ;//Winamp中加入文件
type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; hwndWinamp:HWND;//Winamp窗口的句柄 implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin hwndWinamp := FindWindow(''''Winamp v1.x'''',0); //得到Winamp的句柄 If hwndWinamp = 0 Then //判断Winamp是否运行 begin ShowMessage(''''请启动Winamp先!''''); Application.Terminate ; end end;
procedure TForm1.Button1Click(Sender: TObject); var CDS:COPYDATASTRUCT; SongName:String; begin SongName:=''''I:\Mp3\周杰伦-简单爱.mp3''''; CDS.dwData := IPC_PLAYFILE; CDS.cbData :=Length(SongName)+1; CDS.lpData := PChar(SongName); SendMessage(hwndWinamp, WM_COPYDATA, 0, integer(@CDS)); end;
end.
所有例程在 Win2000 + Delphi6 中调试通过
上一页 [1] [2] [聊天工具]千千静听、Winamp、Foobar2000谁的音质更好? [聊天工具]Skype最好用的几项功能之自动暂停Winamp [系统软件]InstallShield Express for delphi制作安装程序定… [常用软件]InstallShield Express制作Delphi数据库安装程序 [常用软件]Winamp 1.0~5.0 完全更新历史 [常用软件]秀Time Winamp 3.0b3上手指南 [常用软件]Winamp 5.xx 简明使用教程 [常用软件]Winamp 5:优秀插件展播 [Delphi程序]为什么选择Delphi.Net ? [Delphi程序]《关于VisiBroker For Delphi的使用》(4)
|