如何阻止 TChromium 中的密钥?

How to block a key in TChromium?

这是我的代码:

procedure PreKeyEvent(Sender: TObject; const browser: ICefBrowser;
  const event: PCefKeyEvent; osEvent: PMsg;
  out isKeyboardShortcut, Result: Boolean);
begin
    if (event.windows_key_code = VK_CONTROL) or
    (event.windows_key_code = VK_RMENU) or (event.windows_key_code = VK_LMENU) then
  begin
    event.windows_key_code := 0;
  end;
end;

IF 块工作正常。但是这一行 [event.windows_key_code := 0;] 不会忽略指定的键。如何使用事件 PreKeyEvent?

禁用某些键

编辑: 我还尝试将 Result 参数设置为 true。还是不行。

好的,我意识到无法单独禁用 CtrlAlt 键。相反,有一个 native_key_code 为键盘上任何类型的按下键提供一个整数值(快捷键有不同的代码)。您可以简单地为自己打印 native_key_code 值并查看相关的生成代码。

所以在我的例子中,我只需要禁用 Ctrl+ACtrl+C 快捷方式:

procedure PreKeyEvent(Sender: TObject; const browser: ICefBrowser;
  const event: PCefKeyEvent; osEvent: PMsg;
  out isKeyboardShortcut, Result: Boolean);
const
  CtrlA = 1966081;
  CtrlC = 3014657;
begin
  if (event.native_key_code = CtrlA) or (event.native_key_code = CtrlC) then
  begin
    Result := true;
  end;
end;