DELPHI中使用熱鍵

在windows中規定應用程序熱鍵的唯一標識符取值範圍在0x0000~0xBFFF之間,動態鏈接庫的取值範圍在0xC000~0XFFFF之間。

熱鍵的輔助按鍵還包括Mod_Ctrl,Mod_Alt和Mod_Shift,對于windows兼容鍵盤,還包括windows標志鍵,Mod_Win。

熱鍵設置成功後,在程序運行過程中如果有預定義的熱鍵被按下,windows系統都會給應用程序發送一個wm_hotkey消息。

下面用一個例子演示它的使用

編譯程序、運行,如果此程序不是當前桌面顯示在最前邊的窗體,按下ctrl+alt+a後,程序界面將出現在桌面的最上。

示例程序開發平台:D7+WINXP

轉載請注明出處。

DELPHI中使用熱鍵
unit Unit1;

DELPHI中使用熱鍵

DELPHI中使用熱鍵
interface

DELPHI中使用熱鍵

DELPHI中使用熱鍵
uses

DELPHI中使用熱鍵
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

DELPHI中使用熱鍵

DELPHI中使用熱鍵
type

DELPHI中使用熱鍵
TForm1 = class(TForm)

DELPHI中使用熱鍵
procedure FormCreate(Sender: TObject);

DELPHI中使用熱鍵
procedure FormClose(Sender: TObject; var Action: TCloseAction);

DELPHI中使用熱鍵
private

DELPHI中使用熱鍵
DELPHI中使用熱鍵
...{ Private declarations }

DELPHI中使用熱鍵
public

DELPHI中使用熱鍵
DELPHI中使用熱鍵
...{ Public declarations }

DELPHI中使用熱鍵
hotkeyid :integer; //記錄熱鍵標識

DELPHI中使用熱鍵
//處理wm_hotkey消息

DELPHI中使用熱鍵
procedure WMhotkeyhandle(var msg:Tmessage);

DELPHI中使用熱鍵
message wm_hotkey;

DELPHI中使用熱鍵

DELPHI中使用熱鍵
end;

DELPHI中使用熱鍵

DELPHI中使用熱鍵
var

DELPHI中使用熱鍵
Form1: TForm1;

DELPHI中使用熱鍵

DELPHI中使用熱鍵
implementation

DELPHI中使用熱鍵

DELPHI中使用熱鍵
DELPHI中使用熱鍵
...{$R *.DFM}

DELPHI中使用熱鍵
procedure TForm1.Wmhotkeyhandle

DELPHI中使用熱鍵
(var msg:Tmessage);

DELPHI中使用熱鍵
begin

DELPHI中使用熱鍵
//判斷是否是ctrl+alt+a

DELPHI中使用熱鍵
if (msg.LParamHi=$41) and

DELPHI中使用熱鍵
(msg.lparamLo=MOD_CONTROL or mod_Alt) then

DELPHI中使用熱鍵
begin

DELPHI中使用熱鍵
msg.Result:=1;//正常返回

DELPHI中使用熱鍵
application.BringToFront;//將窗體顯示在最前邊

DELPHI中使用熱鍵
end;

DELPHI中使用熱鍵
end;

DELPHI中使用熱鍵

DELPHI中使用熱鍵
procedure TForm1.FormCreate(Sender: TObject);

DELPHI中使用熱鍵
begin

DELPHI中使用熱鍵
//通過原子表獲得一個關于hotkey的唯一標識,注意本文前邊提到的範圍

DELPHI中使用熱鍵
hotkeyid:=GlobalAddAtom(pchar('UserDefineHotKey'))-$C000;

DELPHI中使用熱鍵
//注冊ctrl+alt+a

DELPHI中使用熱鍵
registerhotkey(handle,hotkeyid,MOD_CONTROL or mod_Alt,$41);

DELPHI中使用熱鍵

DELPHI中使用熱鍵
end;

DELPHI中使用熱鍵

DELPHI中使用熱鍵
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

DELPHI中使用熱鍵
begin

DELPHI中使用熱鍵
unregisterhotkey(handle,hotkeyid);//

DELPHI中使用熱鍵
DeleteAtom(HotKeyID);

DELPHI中使用熱鍵
end;

DELPHI中使用熱鍵

DELPHI中使用熱鍵
end.

DELPHI中使用熱鍵

 
使用Delphi對手機通訊的編程
希望對喜歡編程的朋友有幫助,最近在整理所有手機的編程,可能會出一書,交廣州華瑩出版。unit PanasonicGD;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, R...查看完整版>>使用Delphi對手機通訊的編程
 
使用Delphi獲取系列信息
摘要:使用Delphi獲取系列信息使用Delphi獲取系列信息   Delphi以其優良的可視化編程,靈活的Windows API接口,豐富的底層操作越來越受到編程愛好者的青睐。  在Delphi中,通過調用Windows API,可以很方便地獲取...查看完整版>>使用Delphi獲取系列信息
 
使用Delphi獲取系統信息
摘要:使用Delphi獲取系統信息 l 使用Delphi獲取系列信息office:office" />  Delphi以其優良的可視化編程,靈活的Windows API接口,豐富的底層操作越來越受到編程愛好者的青睐。  在Delphi中,通...查看完整版>>使用Delphi獲取系統信息
 
Delphi使用ABC
摘要:Delphi使用ABC Delphi使用技巧ABCoffice:office" />  A如何屏蔽系統功能鍵  有時我們不希望程序被用戶用Alt+Tab、Ctrl+Alt+Del、Ctrl+Esc等系統功能鍵打斷(比如自動演示程序),那麽該怎麽...查看完整版>>Delphi使用ABC
 
Delphi使用技巧四則
摘要:Delphi使用技巧四則  一、定制Speedbar  在Delphi的可視化設計界面中,使用最頻繁的地方要數位于屏幕左上角的加速按鈕欄(Speedbar)了。在實踐過程中,筆者無意中發現了Speedbar的定制方法,這在我用過的...查看完整版>>Delphi使用技巧四則