热键响应(50分)

  • 主题发起人 主题发起人 浮生
  • 开始时间 开始时间

浮生

Unregistered / Unconfirmed
GUEST, unregistred user!
我刚用delphi没多久,很多东西都不会,向大家讨教。
我完成了了一个后台监控的东西,运行后隐藏,想用热键唤醒,不知道大家有什么好方法?[:)]
 
RegisterHotKey函数原型及说明:
BOOL RegisterHotKey(
HWND hWnd, // window to receive hot-key notification
int id, // identifier of hot key
UINT fsModifiers, // key-modifier flags
UINT vk // virtual-key code);
参数 id为你自己定义的一个ID值,对一个线程来讲其值必需在0x0000 - 0xBFFF范围之内,对DLL来讲其值必需在0xC000 - 0xFFFF 范围之内,在同一进程内该值必须唯一
参数 fsModifiers指明与热键联合使用按键,可取值为:MOD_ALT MOD_CONTROL MOD_WIN MOD_SHIFT
参数 vk指明热键的虚拟键码

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
HotKey1:word;
{ Private declarations }
procedure HotKey(Var msg:TWMHotKey);message WM_HotKey;
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
HotKey1:=GlobalAddAtom('nnss');
RegisterHotKey(handle,HotKey1,0,VK_F9); //热键是F9
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(handle,HotKey1)
end;

procedure TForm1.HotKey(var msg: TWMHotKey);
begin
showmessage('hi');
end;

end.

你还可以搜一下,很多的。
 
接受答案了.
 
后退
顶部