delphi - 如何使用 Delphi 在其他应用程序中检测 CTRL+A
问题描述
每当用户按下它们时,我都需要检测 Ctrl+A 击键。这是我到目前为止所做的
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (GetKeyState(65)>0) then
begin
caption:='CTRL+A Pressed!';
end else
begin
caption:='Not pressed';
end;
end;
如何知道是否按下了 CTRL 键?
解决方案
每当用户按下它们时,我都需要检测 Ctrl+A 击键。
如果你真的是那个意思,没有别的意思,那就考虑一下RegisterHotkey()
。
- 优点:随时通知您。无需轮询,不浪费性能。
- 缺点:这也意味着您“窃取”每个其他窗口的输入 - 由您来为焦点窗口合成此组合键,以便恢复现实。此功能不用于拦截。
示例:您的程序/窗口没有集中,甚至可能最小化。在记事本中,您按 CTRL+A 选择所有文本。您的程序会收到通知,而记事本从未收到过这样的输入。您可以使用SendInput()
为记事本生成 CTRL+A,然后最终选择所有文本。
推荐阅读
- ios - 无法在数组的 firstIndex 方法的结构中使用惰性 var
- android - 房间 - 保存自定义对象列表
- python - 使用 Python 实现多线程和多处理
- javascript - 读取海关标头 HTTP
- c++11 - 为什么我尝试测试类中的成员变量(字符串)是否为空时会出现错误?
- python - 使用 str.replace 在循环中运行 XOR 加密不会更改某些字符
- javascript - 将对象从一个窗口传递到另一个窗口
- c++ - GCC_VERSION gcc-6.2.0 出现错误:enable_if 不是类模板,但相同的代码正在使用 gcc-4.3.0
- javascript - 如果我在一个数组中添加 2 个数字并推送到一个新数组,我如何从第二个数组中的值中找到这 2 个数字
- opencart - 如果 en-gb.php 语言文件仅在管理员中不起作用,如何修复