uses windows,menus;
..... //声明 HotKey_Key: Word; HotKey_Shift: Word; procedure WMHotKey(var msg : Tmessage); message WM_HOTKEY;
......
function ShiftStateToWord(Shift:TShiftState): Word; begin if ssShift in Shift then Result :=MOD_SHIFT else Result := 0; if ssCtrl in Shift then Result :=Result or MOD_CONTROL; if ssAlt in Shift then Result:=Result or MOD_ALT; end;
//实现 procedure TForm1.WMHotKey (var Msg : Tmessage); begin if ((Msg.LParamHi = HotKey_Key) and (Msg.LParamLo = HotKey_Shift)) then begin //do someting..... end;
end;
//注册热键 procedure TForm1.hotKey1Change(Sender: TObject); var SS: TShiftState; begin Aatom := GlobalAddAtom('EA7276EC-34C1-4A11-8CB3-9940FC76539D'); //全局热键ID ShortCutToKey(HotKeyset.HotKey, HotKey_Key, SS); HotKey_Shift := ShiftStateToWord(SS); RegisterHotKey(Handle, Aatom, HotKey_Shift, HotKey_Key); //注册全局热键 end;
//取消已注册的热键 procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotKey(Handle, Aatom); GlobalDeleteAtom(Aatom); end;
|
请发表评论