📄 ukeyblockhookdemo.pas
字号:
begin
KeyHook1.BlockKeys.VK_RCONTROL := cb_VK_RCONTROL.Checked;
end;
procedure TForm1.cb_VK_RMENUClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_RMENU := cb_VK_RMENU.Checked;
end;
procedure TForm1.cb_VK_CONTROLClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_CONTROL := cb_VK_CONTROL.Checked;
end;
procedure TForm1.cb_VK_MENUClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_MENU := cb_VK_MENU.Checked;
end;
procedure TForm1.cb_VK_PAUSEClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_PAUSE := cb_VK_PAUSE.Checked;
end;
procedure TForm1.cb_VK_CAPITALClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_CAPITAL := cb_VK_CAPITAL.Checked;
end;
procedure TForm1.cb_VK_ESCAPEClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_ESCAPE := cb_VK_ESCAPE.Checked;
end;
procedure TForm1.cb_VK_SPACEClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_SPACE := cb_VK_SPACE.Checked;
end;
procedure TForm1.cb_VK_PRIORClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_PRIOR := cb_VK_PRIOR.Checked;
end;
procedure TForm1.cb_VK_NEXTClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_NEXT := cb_VK_NEXT.Checked;
end;
procedure TForm1.cb_VK_ENDClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_END := cb_VK_END.Checked;
end;
procedure TForm1.cb_VK_HOMEClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_HOME := cb_VK_HOME.Checked;
end;
procedure TForm1.cb_VK_NUMLOCKClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_NUMLOCK := cb_VK_NUMLOCK.Checked;
end;
procedure TForm1.cb_VK_SCROLLClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_SCROLL := cb_VK_SCROLL.Checked;
end;
procedure TForm1.cb_VK_APPSClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_APPS := cb_VK_APPS.Checked;
end;
procedure TForm1.cb_VK_LMENUClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_LMENU := cb_VK_LMENU.Checked;
end;
procedure TForm1.cb_VK_LEFTClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_LEFT := cb_VK_LEFT.Checked;
end;
procedure TForm1.cb_VK_UPClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_UP := cb_VK_UP.Checked;
end;
procedure TForm1.cb_VK_RIGHTClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_RIGHT := cb_VK_RIGHT.Checked;
end;
procedure TForm1.cb_VK_DOWNClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_DOWN := cb_VK_DOWN.Checked;
end;
procedure TForm1.cb_VK_SELECTClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_SELECT := cb_VK_SELECT.Checked;
end;
procedure TForm1.cb_VK_PRINTClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_PRINT := cb_VK_PRINT.Checked;
end;
procedure TForm1.cb_VK_EXECUTEClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_EXECUTE := cb_VK_EXECUTE.Checked;
end;
procedure TForm1.cb_VK_SNAPSHOTClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_SNAPSHOT := cb_VK_SNAPSHOT.Checked;
end;
procedure TForm1.cb_VK_INSERTClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_INSERT := cb_VK_INSERT.Checked;
end;
procedure TForm1.cb_VK_DELETEClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_DELETE := cb_VK_DELETE.Checked;
end;
procedure TForm1.cb_VK_HELPClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_HELP := cb_VK_HELP.Checked;
end;
procedure TForm1.cb_VK_LWINClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_LWIN := cb_VK_LWIN.Checked;
end;
procedure TForm1.cb_VK_RWINClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_RWIN := cb_VK_RWIN.Checked;
end;
procedure TForm1.cb_VK_PROCESSKEYClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_PROCESSKEY := cb_VK_PROCESSKEY.Checked;
end;
procedure TForm1.cb_VK_F1Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F1 := cb_VK_F1.Checked;
end;
procedure TForm1.cb_VK_F2Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F2 := cb_VK_F2.Checked;
end;
procedure TForm1.cb_VK_F3Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F3 := cb_VK_F3.Checked;
end;
procedure TForm1.cb_VK_F4Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F4 := cb_VK_F4.Checked;
end;
procedure TForm1.cb_VK_F5Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F5 := cb_VK_F5.Checked;
end;
procedure TForm1.cb_VK_F6Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F6 := cb_VK_F6.Checked;
end;
procedure TForm1.cb_VK_F7Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F7 := cb_VK_F7.Checked;
end;
procedure TForm1.cb_VK_F8Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F8 := cb_VK_F8.Checked;
end;
procedure TForm1.cb_VK_F9Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F9 := cb_VK_F9.Checked;
end;
procedure TForm1.cb_VK_F10Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F10 := cb_VK_F10.Checked;
end;
procedure TForm1.cb_VK_F11Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F11 := cb_VK_F11.Checked;
end;
procedure TForm1.cb_VK_F12Click(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F12 := cb_VK_F12.Checked;
end;
procedure TForm1.cb_VK_AClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_A := cb_VK_A.Checked;
end;
procedure TForm1.cb_VK_BClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_B := cb_VK_B.Checked;
end;
procedure TForm1.cb_VK_CClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_C := cb_VK_C.Checked;
end;
procedure TForm1.cb_VK_DClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_D := cb_VK_D.Checked;
end;
procedure TForm1.cb_VK_EClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_E := cb_VK_E.Checked;
end;
procedure TForm1.cb_VK_FClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_F := cb_VK_F.Checked;
end;
procedure TForm1.cb_VK_GClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_G := cb_VK_G.Checked;
end;
procedure TForm1.cb_VK_HClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_H := cb_VK_H.Checked;
end;
procedure TForm1.cb_VK_IClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_I := cb_VK_I.Checked;
end;
procedure TForm1.cb_VK_JClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_J := cb_VK_J.Checked;
end;
procedure TForm1.cb_VK_KClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_K := cb_VK_K.Checked;
end;
procedure TForm1.cb_VK_LClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_L := cb_VK_L.Checked;
end;
procedure TForm1.cb_VK_MClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_M := cb_VK_M.Checked;
end;
procedure TForm1.cb_VK_NClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_N := cb_VK_N.Checked;
end;
procedure TForm1.cb_VK_OClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_O := cb_VK_O.Checked;
end;
procedure TForm1.cb_VK_PClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_P := cb_VK_P.Checked;
end;
procedure TForm1.cb_VK_QClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_Q := cb_VK_Q.Checked;
end;
procedure TForm1.cb_VK_RClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_R := cb_VK_R.Checked;
end;
procedure TForm1.cb_VK_SClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_S := cb_VK_S.Checked;
end;
procedure TForm1.cb_VK_TClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_T := cb_VK_T.Checked;
end;
procedure TForm1.cb_VK_UClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_U := cb_VK_U.Checked;
end;
procedure TForm1.cb_VK_VClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_V := cb_VK_V.Checked;
end;
procedure TForm1.cb_VK_WClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_W := cb_VK_W.Checked;
end;
procedure TForm1.cb_VK_XClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_X := cb_VK_X.Checked;
end;
procedure TForm1.cb_VK_YClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_Y := cb_VK_Y.Checked;
end;
procedure TForm1.cb_VK_ZClick(Sender: TObject);
begin
KeyHook1.BlockKeys.VK_Z := cb_VK_Z.Checked;
end;
procedure TForm1.cbhookinjectedClick(Sender: TObject);
begin
KeyHook1.HookInjected := cbhookinjected.Checked;
end;
procedure TForm1.btupdateClick(Sender: TObject);
begin
if KeyHook1.UpdateHook then MessageDlg('Hook Updated.'+#13+#10+''+#13+#10+'The Hook has been updated with the selected properties.'+#13+#10+'Updates take effect immediately.', mtInformation, [mbOK], 0)
else MessageDlg('Error Updating Hook.'+#13+#10+''+#13+#10+'It was not possible to update the Hook. The Hook must be'+#13+#10+'Enabled and Started to update the properties.', mtError, [mbOK], 0);
end;
procedure TForm1.KeyHook1Key(Sender: TObject; AKeyStates: TKeyStates;
AKeyNames: TKeyNames; Blocked, Injected: Boolean);
begin
inc(callcount);
ltotcalls.caption := 'Total Hook Calls Processed: '+inttostr(callcount);
lbvkcode.Caption := 'vkCode: '+inttostr(AKeyStates.keyinfo.vkCode);
lbscancode.Caption := 'scanCode: '+inttostr(AKeyStates.keyinfo.scanCode);
lbflags.Caption := 'flags: '+inttostr(AKeyStates.keyinfo.flags);
lbtime.Caption := 'time: '+inttostr(AKeyStates.keyinfo.time);
lbdwextrainfo.Caption := 'xinfo: '+inttostr(AKeyStates.keyinfo.dwExtraInfo);
{ Show The Current State of each Key Pressed }
if AKeyStates.KeyDown then skey.Brush.Color := clLime else skey.Brush.Color := clWhite;
if (AKeyStates.KeyRepeated and AKeyStates.KeyDown) then skeyrepeat.Brush.Color := clYellow
else skeyrepeat.Brush.Color := clWhite;
lbkeyrepeat.Caption := 'Repeat '+inttostr(AKeyStates.RepeatCount);
if AKeyStates.AltDown then salt.Brush.Color := clLime else salt.Brush.Color := clWhite;
if AKeyStates.CtrlDown then sctrl.Brush.Color := clLime else sctrl.Brush.Color := clWhite;
if AKeyStates.ShiftDown then sshift.Brush.Color := clLime else sshift.Brush.Color := clWhite;
if (AKeyStates.ExtendedKey and AKeyStates.KeyDown) then sxkey.Brush.Color := clRed else sxkey.Brush.Color := clWhite;
if (Blocked) then sblockedkey.Brush.Color := clRed else sblockedkey.Brush.Color := clWhite;
if (Injected) then sinjectedkey.Brush.Color := clRed else sinjectedkey.Brush.Color := clWhite;
{ If Key is Down and ASCII Character then Log to Memo }
if Not AKeyStates.KeyDown then Exit;
lbapp.Caption := 'Active Window: '+GetActiveWindowTitle;
lbvkey.Caption := 'Virtual Key Name: '+AKeyNames.KeyExtName;
lbakey.Caption := 'Ascii Key Character: '+AKeyNames.KeyChar;
if AKeyNames.KeyChar = #13 then memokeylog.Text := memokeylog.Text+#13#10
else memokeylog.Text := memokeylog.Text+AKeyNames.KeyChar;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -