unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation var IsKDown,IsLDown:Boolean;{$R *.dfm}procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if ssCtrl in shift then begin if IsKDown and IsLDown then begin showmessage('KeyUP Event For "Ctrl + k +l"'); end; end; if (chr(key)='k') or (chr(key)='K') then IsKDown:=false; if (Chr(key)='l') or (chr(key)='L') then IsLDown:=false;; end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (chr(key)='k') or (chr(key)='K') then IsKDown:=True; if (Chr(key)='l') or (chr(key)='L') then IsLDown:=True; end;end.
我想不出更好的办法了..召唤更好的办法ing
If ((GetKeyState(VK_CONTROL) AND 128)=128) and((GetKeyState(VK_F5) AND 128)=128) and((GetKeyState(ord('8')) AND 128)=128)thenShowMessage('CTRL+F5+8 Pressed');
private procedure WMHOTKEY(var msg: TWMHOTKEY); message WM_HOTKEY; 定义一个系统原子: var atom: word;//系统原子procedure TYourForm.OnCreate(......); begin atom:=GlobalAddAtom('MINIZHUXIANCHUN');//参数为任意PCHAR字符串. RegisterHotKey(Self.Handle,atom,MOD_ALT+MOD_SHIFT,VkKeyScan('q')); end;procedure TYourForm.WMHOTKEY(var msg: TWMHOTKEY); begin 写你想要响应的代码。 end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
var
IsKDown,IsLDown:Boolean;{$R *.dfm}procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ssCtrl in shift then
begin
if IsKDown and IsLDown then
begin
showmessage('KeyUP Event For "Ctrl + k +l"');
end;
end;
if (chr(key)='k') or (chr(key)='K') then IsKDown:=false;
if (Chr(key)='l') or (chr(key)='L') then IsLDown:=false;;
end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (chr(key)='k') or (chr(key)='K') then IsKDown:=True;
if (Chr(key)='l') or (chr(key)='L') then IsLDown:=True;
end;end.
procedure WMHOTKEY(var msg: TWMHOTKEY); message WM_HOTKEY;
定义一个系统原子:
var
atom: word;//系统原子procedure TYourForm.OnCreate(......);
begin
atom:=GlobalAddAtom('MINIZHUXIANCHUN');//参数为任意PCHAR字符串.
RegisterHotKey(Self.Handle,atom,MOD_ALT+MOD_SHIFT,VkKeyScan('q'));
end;procedure TYourForm.WMHOTKEY(var msg: TWMHOTKEY);
begin
写你想要响应的代码。
end;