
07.11.2008, 17:37
|
Новичок
|
|
Регистрация: 12.09.2008
Сообщения: 66
Репутация: 10
|
|
Ну теперь всё работает
Код:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
function GetWMPHandle : hwnd;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
var wnd:hwnd;
implementation
{$R *.dfm}
function TForm1.GetWMPHandle: hwnd;
begin
result := FindWindow('WMPlayerApp', nil);
result := FindWindowEx(result, 0, 'WMPAppHost', 'WMPAppHost');
if result = 0 then result := Findwindow(nil,'Windows Media Player');
end;
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
wnd := GetWMPHandle;
if msg.HotKey=1 then
if wnd <> 0 then SendMessage(wnd,WM_APPCOMMAND,0,$C0000);
if msg.HotKey=2 then
if wnd <> 0 then SendMessage(wnd,WM_APPCOMMAND,0,$B0000);
if msg.HotKey=3 then
if wnd <> 0 then SendMessage(wnd,WM_APPCOMMAND,0,$E0000);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Form1.Handle, 1, 0, vk_f1);
RegisterHotKey(Form1.Handle, 2, 0, vk_f2);
RegisterHotKey(Form1.Handle, 3, 0, vk_f3);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Form1.Handle, vk_f1);
UnRegisterHotKey(Form1.Handle, vk_f2);
UnRegisterHotKey(Form1.Handle, vk_f3);
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
ShowWindow(Handle,SW_MINIMIZE);
ShowWindow(Application.Handle,SW_MINIMIZE);
end;
end.
А можно это всё на winapi полностью без формы, нах она не нужна просто? У меня не выходит что-то.
Если просто переделывать ругается на procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY; в часности на слово message типа unknown directive?
|