如何防止 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 阻止其他应用程序的密钥? 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile

随机推荐

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

    我有一个像这样的云函数 它已设置为在多个区域运行 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