如何防止 RegisterHotKey 阻止其他应用程序的密钥?

2024-01-07

我正在编写一个 win32 应用程序,需要在未获得焦点时使用热键(它在后台运行而不绘制窗口)。我使用 RegisterHotKey 来分配一些键,但这会阻止所有其他进程。例如,我分配了“c”键,当我在记事本中按下它时,没有任何反应。


RegisterHotKey()注册全局热键。热键在常规键盘输入处理之前进行处理,这意味着如果您成功注册热键,按下该键将导致您收到热键消息,而不是获得焦点的应用程序获得正常的热键消息WM_KEYDOWN/WM_CHAR消息。您已有效阻止其他应用程序看到该按键。

这是设计使然。

显然,避免像您所描述的冲突的解决方案是not注册其他应用程序可以使用的热键。如果您将不带任何限定符的 C 注册为热键,则其他程序将不会看到 C 键被按下。相反,您应该使用 Ctrl/Shift/Alt 等限定符来防止热键干扰键盘的正常使用。

无法注册全局热键unless其他一些程序处于活动状态。如果您想实现这样的情况,例如,您的热键在桌面处于活动状态时起作用,但没有其他任何东西,您可以使用消息挂钩将代码注入桌面进程(通过SetWindowsHookEx())并以这种方式拦截按键。但你不能这样做RegisterHotKey().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止 RegisterHotKey 阻止其他应用程序的密钥? 的相关文章

随机推荐

  • 如何调用离用户最近的云函数

    我有一个像这样的云函数 它已设置为在多个区域运行 export const cloudFunction functions region asia south1 us central1 europe west1 southamerica e
  • Android Firebase如何在特定用户下保存和检索数据

    我正在尝试将我的应用程序与 firebase 集成以在云上保存简单数据 Example 用户打开应用程序并登录 用户写一些东西 数据保存在云端 当用户再次使用该应用程序时 他将看到他的数据 我已阅读文档 但我找不到任何示例 结构在用户和数据
  • Dapper:具有重复列名称的多重映射

    我有一个看起来像这样的表 ID ERR1 ERR2 ERR3 05A2 A001 B223 C212 06B3 B392 C234 D234 我想将其映射到如下所示的对象 public class Entry public string I
  • 如何在没有 UIWebView 的情况下播放 youtube 视频或当 youtube 视频开始使用 webview 播放时检测视频播放器?

    我需要在我的 iOS 应用程序中播放 YouTube 视频 并且在播放视频时我需要在视频上添加叠加层 1 现在如何在本机播放器中运行 youtube 视频 2 如果我在 UIWebview 中播放视频 那么我如何检测该视频是 播放以及如何在
  • 使用gdb查找程序卡在哪里

    我的程序无法正常工作 看起来它陷入了无限循环或错误的互斥锁定 解锁 但是 我不知道错误在哪里 我尝试使用 gdb 进行调试 我无法使用 gdb backtrace 命令 因为我没有指定断点 我无法指定它 因为我不知道错误在哪里 gdb 有
  • Awesome-wm 中特定标签下的应用程序自动启动

    我读过了在 Awesome wm 中为特定应用程序设置窗口布局 https stackoverflow com questions 5120399 setting windows layout for a specific applicat
  • NuGet - 从命令行添加新的包源

    我有一个场景 我在 VSTS 中创建构建 我无权访问托管代理的虚拟机 并且未将其设置为包含我们的内部包源 我确实可以通过命令行 powershell 进行访问 如何通过命令行向 VS2017 添加新的包源 或者我什至可以这样做 您可以使用
  • symfony 4 设置以匿名身份登录

    我正在研究一个Symfony 4项目 尝试登录后 它使用匿名令牌将我重定向回登录页面 我的设置是使用来自的登录表单symfony docs 单击登录后 我的会话只有csrf authenticate属性 有什么想法我做错了什么吗 安全 ya
  • 企业架构师显示奇怪的符号。这是什么意思?

    有时 我在开始更详细的 UML 工作和开发之前构建的一些 不是全部 需求工件上会出现一个红色三角形 我不知道是什么原因造成的 也不知道它想表达什么 更重要的是 我无法摆脱它 据我所知 这与 UML 或 SysML 规范无关 是吗 谁能解释一
  • 对话框布局双层错误透明背景

    我想制作一个白色的 无边框的弹出视图 为了实现此目的 我使用具有自定义样式的自定义对话框 public Builder createNewDialog int type AlertDialog Builder dlg null switch
  • 如何以编程方式设置和启动 Scrapy 蜘蛛(url 和设置)

    我用 scrapy 写了一个工作爬虫 现在我想通过Django webapp来控制它 也就是说 设置1个或多个start urls 设置1个或多个allowed domains Set settings values 启动蜘蛛 停止 暂停
  • Windows 中的 cmake 和 make

    据我所知 在linux cmake中 make和make install可以组合在一起生成一个版本 例如 cmake DCMAKE BUILD TYPE Release make make install 然而 在 Windows 中 我找
  • 调用客户端重定向后会话属性丢失

    以前 servlet 使用response sendRedirect pages my page jsp foo bar 没有问题 可以在重定向到的后续页面中检索会话属性 目前 我正在更改发送请求的方式 最初 Javascript 使用my
  • 选择光标中的语句

    我们可以在游标中使用选择查询吗 Example CREATE PROCEDURE try AS SET NOCOUNT ON Declare dname nvarchar 50 ename nvarchar 50 esal int Decl
  • 内存泄漏处理 Xamarin.Forms

    我使用 Xamarin Forms 创建的应用程序存在内存泄漏问题 我的应用程序由带有图像的 ListView 组成 如果我单击一个项目并返回到 ListPage 我可以在 输出 窗口中看到内存占用过多 我试过打电话GC Collect i
  • 将占位符添加到 UITextField,如何在 swift 中以编程方式设置占位符文本?

    我正在从数据库中提取一个电话号码 当用户开始在文本字段中编辑以更改该电话号码时 我想使用数据库中当前的号码作为占位符 由于此信息随每个用户而变化 我如何以编程方式快速设置它 您需要先从数据库中获取电话号码 将其转换为字符串 然后设置plac
  • WPF 应用程序的当前上下文中不存在名称“InitializeComponent”

    我在 StackOverflow 上检查了所有类似的问题 但没有一个答案解决了我的问题 我只是得到了标题中的错误 这是我的 MainVindow xaml
  • .svg 文件作为 HTML 中的对象未在 Android WebVIew 中显示

    我的应用程序有一个能够加载 svg 文件的 WebView 控件 当 url 是 svg 文件时 它会正确显示 我修改了代码 不直接加载 svg 文件 这样我就必须调用类似的东西 webView loadDataWithBaseURL ba
  • 您可以根据标签自定义 Tumblr 帖子的格式吗?

    制作一个自定义 Tumblr 主题 其中混合了常见的 Tumblr 帖子类型 文本 图片 链接等 我还想偶尔做一个特殊的帖子类型 以展示我的摄影作品 但我不希望调整它的大小 而是想以高分辨率的全宽度展示照片主题 约 1140 像素宽 我读过
  • 如何防止 RegisterHotKey 阻止其他应用程序的密钥?

    我正在编写一个 win32 应用程序 需要在未获得焦点时使用热键 它在后台运行而不绘制窗口 我使用 RegisterHotKey 来分配一些键 但这会阻止所有其他进程 例如 我分配了 c 键 当我在记事本中按下它时 没有任何反应 Regis