⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ukeyblockhookdemo.pas

📁 键盘钩子程序及控件, C++ Builder 和DELPHI可用
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -