如何在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;

相关内容

  • 没有找到相关文章

最新更新