这是我的代码:
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。还是不起作用。
发布于 2015-03-23 07:36:40
好的,正如我意识到的,不可能单独禁用Ctrl或Alt键。相反,有一个native_key_code,它为键盘上任何类型的按下键显示一个整数值(快捷键有不同的代码)。您只需为自己打印native_key_code值,并查看相关的生成代码。
因此,在我的例子中,我只需要禁用Ctrl+A和Ctrl+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;https://stackoverflow.com/questions/29192489
复制相似问题