本文整理自网络,侵删。
function ShiftStateToWord(Shift: TShiftState): Word; //热键组合键分解 private { Private declarations } var aatom: ATOM; Key, Shift: Word; public { Public declarations } procedure hotkey(var msg: TMessage); message WM_HOTKEY;//定义全局热键消息事件function TForm1.ShiftStateToWord(Shift: TShiftState): Word;begin if ssShift in Shift then Result := MOD_SHIFT; if ssCtrl in Shift then Result := Result or MOD_CONTROL; if ssAlt in Shift then Result := Result or MOD_ALT;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin UnregisterHotKey(Handle, aatom); GlobalDeleteAtom(aatom);end;procedure TForm1.RzBitBtnSetHotKeyClick(Sender: TObject);var T: TShiftState;begin if FindAtom('ZWXhotKey') = 0 then begin aatom := GlobalAddAtom('ZWXhotKey'); end; ShortCutToKey(RzHotKeyEditSys.HotKey, Key, T); Shift := ShiftStateToWord(T);
try if RegisterHotKey(Handle, aatom - $C000, Shift, Key) then begin ShowMessage('注册成功'); end; except on e: Exception do ShowMessage(e.Message);
end;
end;procedure TForm1.hotkey(var msg: TMessage);begin if (msg.LparamLo = Shift) and (msg.LParamHi = Key) then begin ShowMessage('OK'); end;
end;
相关阅读 >>
更多相关阅读请进入《Delphi》频道 >>