請問:如何在任何窗口响应热键??? 我需要的系统的任何窗口中只要按一组热键就可以弹出某个固定的窗口,我的系统是Windows2000+delphi6请问怎么实现?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己查资料解决!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 指明热键的虚拟键码 首先 ( 举个例子 ): RegisterHotKey(handle,globaladdatom('hot key'),MOD_ALT,vk_f12);然后在 form 中声明一个函数 ( 过程 ): procedure hotkey(var msg:tmessage);message wm_hotkey;过程如下 :procedure TForm1.hotkey(var msg:tmessage);begin if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then begin form1.show; SetForegroundWindow(handle); end;end;这样 ,不管你在什么地方 ,窗口就会显示出来。 当然 ,你要 GlobalDeleteAtom;unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } aatom:atom; procedure hotkey(var msg:tmessage);message wm_hotkey; public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);begin aatom:=globaladdatom('hot key'); RegisterHotKey(handle,aatom,MOD_ALT,vk_f12);end;procedure TForm1.hotkey(var msg:tmessage);begin if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then SetForegroundWindow(handle);end;procedure TForm1.FormDestroy(Sender: TObject);begin globalDeleteatom(aatom);end;end. 怎样避免别人拿到OCX可以使用? GPRS拨号发送数据遇到问题了 弱智问题 请做销售界面用什么网格控件比较好呀 ??? 急!! 关于套打的精确定位 急急急!请教RAVE制作报表的走纸精度问题 请帮忙 请教编辑注册表 为什么FastReport2.4安装时出现缺少文件的提示? 几个问题,请高手指教,每个20分,还有,怎么送分啊,是不是自动就给回答问题的人加了? d7如何发送邮件 大家请给点看法,关于TComponenet的虚拟构造方法
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } aatom:atom; procedure hotkey(var msg:tmessage);message wm_hotkey; public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);begin aatom:=globaladdatom('hot key'); RegisterHotKey(handle,aatom,MOD_ALT,vk_f12);end;
procedure TForm1.hotkey(var msg:tmessage);begin if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then SetForegroundWindow(handle);end;
procedure TForm1.FormDestroy(Sender: TObject);begin globalDeleteatom(aatom);end;
end.