如何在 Win32 C++ 程序在后台运行时检测按键

2024-03-10

我有一个程序,每当我最小化它时,它就会进入系统托盘。

我想知道的是: a) 当我的程序位于系统托盘中时,如何检测按键操作。 b)我怎么知道他们在键盘上按下了什么,特别是功能按钮。


您需要使用设置键盘挂钩设置WindowsHookEx() http://msdn.microsoft.com/en-us/library/ms644990(v=vs.85).aspx。看着那(这WH_KEYBOARD 和 WH_KEYBOARD_LL http://msdn.microsoft.com/en-us/library/ms644959(v=vs.85).aspx#wh_keyboardhook hooks.

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

如何在 Win32 C++ 程序在后台运行时检测按键 的相关文章

  • FindFirstFile 和 FindNextFile 问题

    输出 The first file found is LOG 09 TXT Next file name is LOG 10 TXT Next file name is LOG 11 TXT Next fi cut off word fil
  • 如何在对话框中托管预览处理程序

    我正在尝试在对话框中托管文件预览处理程序 我已经为资源管理器中的选择更改设置了一个事件接收器 当选择更改时 我将选定的 shell 项目提供给对话框 该对话框又将其提供给准备预览帧的函数 一般来说 它会成功加载正确的处理程序并显示文件的内容
  • 如何将参数传递给 DLL 初始化(例如,通过 LoadLibrary 加载时)?

    如何将参数传递给通过 LoadLibrary 加载的 DLL 的初始化函数 有可能吗 也就是说 无需求助于某种导出函数或共享内存 没有直接的方法 最简单的可能是通过环境变量 它们可以在调用之前轻松设置LoadLibray with sete
  • SetForegroundWindow 不适用于最小化进程[重复]

    这个问题在这里已经有答案了 找不到关于这个主题的任何好的答案 所以也许有人可以帮助我 我正在制作一个小型个人程序 我想将某个应用程序带到前台 它已经可以工作了 但是有一个小问题 当进程最小化时 我的代码将无法工作 该进程不会像未最小化时那样
  • 为什么没有定义 PCTSTR 而定义了 LPCTSTR?

    我被指派更新用 MSVC 6 编写的旧代码 我得到了 PCTSTR 的未知定义 但即使我包含了 tchar h 它也没有定义 根据我以前的经验 我知道有 LPTSTR 但没有 PCTSTR 我 grep C Program Files Mi
  • 如何获取Windows 7中的“临时文件夹”?

    在 Windows 7 中 如何以编程方式获取系统临时文件夹 The 获取临时路径 http msdn microsoft com en us library windows desktop aa364992 28v vs 85 29 as
  • 如何在 Windows 中拦截 DNS 查询

    我正在研究如何在 Windows 中拦截 DNS 查询 以一种不需要将 DLL 注入到每个进程中的方式 并且理想情况下能够根据发出查询的进程做出决策 因此简单的 DNS 代理服务器是不够的 从表面上看 DNS 查询所采用的路径如下所示 某些
  • 消息循环如何使用线程?

    我有点困惑 想知道我是否被误导了 在另一篇文章中 我被告知 只有当你显式创建新线程时才会创建它们 C 程序默认是单线程的 当我打开未在 ollydbg 中显式创建新线程的程序时 我多次注意到通常有 2 个线程在运行 我想了解消息循环如何在不
  • 如何在 Windows 8 上注册自定义 Win+V 热键?

    可以在 Windows 8 之前的 Windows 版本上注册 Win V 热键 使用此组合的示例应用程序是PureText http www stevemiller net puretext 在 Windows 8 Release Pre
  • Python ctypes:SetWindowsHookEx 回调函数从未被调用

    我正在尝试用 Python 编写一个程序 该程序可以识别何时显示警报框 对话框 它正在处理多个监视器 我希望它在任务栏图标闪烁 弹出错误 通知等时在辅助监视器上显示可视化效果 据我所知 检测这些事件的方法是使用消息挂钩 如下所述 http
  • Windows 消息

    我需要发送带有自定义 ID 的自定义 Windows 消息 其他应用程序将侦听该消息 Windows 是否为内部消息保留任何预定义的消息 ID 范围 如 SQL Server 那样 内部消息最多为 50 000 The 文档 https m
  • switch 在 Visual C++ 中如何编译?它的优化程度和速度如何?

    我发现我只能在 C 中使用数值switch陈述 我认为它和一堆更深层的区别if else s 因此我问自己 如何switch与 不同if elseif elseif在运行速度 编译时优化和一般编译方面 我这里主要说的是MSVC 开关通常被编
  • windows下删除进程权限

    出于安全原因 我正在寻找一种删除进程权限的方法 我想以具有特权的用户身份开始 并以受限用户身份结束 例如 我希望我的 Web 服务器在受限用户下运行 但我仍然想监听端口 80 我怎样才能在Windows下做这样的事情 与 Unix 类似的东
  • HWND 创建时间

    我是这个社区的新手 在使用我的自动化脚本 1 时遇到一个问题 我想获取 HWND 的创建时间 我在从 FindWindowEx 检索到的数组中有一组 HWND 我想在数组中找到最后根据系统时间创建的 HWND 我对窗口钩子没有足够的了解 但
  • winapi 函数的函数指针 (stdcall/cdecl)

    请有人给我一些为 MS winapi 函数创建函数指针的提示吗 我试图为 DefWindowProc DefWindowProcA DefWindowProcW 创建一个指针 但出现此错误 LRESULT dwp HWND UINT WPA
  • Windows 8 SDK 中的 DirectX

    Summary 是否应该从针对 Windows 8 的应用程序中删除 directX 包含文件 Details 我是 Windows 开发新手 我正在尝试使用 Visual Studio 2012 如果可能 在 Windows 8 上编译
  • 预注册 ATL 窗口类

    我在一个项目中使用了 ATL 和 WTL 的组合 并从中派生了我自己的类CWindowImpl 看起来像这样 class CMyControl public CWindowImpl
  • 链接到大地址感知 DLL

    假设我有一个使用 LARGEADDRESSAWARE 链接器标志集构建的 DLL 现在我有一个动态链接到该 DLL 的应用程序 这是否会使我的应用程序具有大型地址意识 如果不是 那么为任何 DLL 设置此标志是否有意义 讨论here htt
  • 为什么 SetCursorPos 将光标位置重置到显示屏的左侧?

    SetCursorPos https learn microsoft com en us windows win32 api winuser nf winuser setcursorpos将光标移动到指定的屏幕坐标 然而 它似乎有一个错误
  • 屏幕截图忽略了一些窗口

    我正在 MFC 中工作 我正在尝试捕获桌面的 bmp 我正在使用 GetDC NULL 来执行此操作 但它似乎忽略了特殊的皮肤窗口 它似乎忽略了用 UpdateLayeredWindow 绘制的窗口 此行为似乎仅发生在 Vista x64

随机推荐

  • GUID 可以多短?

    我知道标准 GUID 它们可以变得更短吗 其背后的理论是什么 Greg Dean 的答案是正确的 但为了了解 GUID 是如何生成的以及为什么不应该缩短它 我强烈建议您阅读下面的文章 新旧事物 GUID 是全局唯一的 但 GUID 的子字符
  • 如何扩展从npm包导入的vue组件?

    如果您有通过 Node 安装的 vue 组件 node modules vendor somecomponent vue 有什么方法可以修改 扩展该组件的模板 方法吗 Update 尝试下面的示例后 我遇到了这个问题 我在用https gi
  • VB.NET:哪个 As 子句与带有 Option Strict On 的匿名类型一起使用?

    考虑始终声明的要求Option Strict On 我们总是需要用As关键词 匿名类型的类型是什么 例子 Dim product As New With Key Name paperclips Price 1 29 接下来会发生什么As 尝
  • 使用 .NET Framework 或 Windows API 检测 Windows 11

    在 NET Framework 中 获取可以使用的操作系统版本Environment OSVersion与Major and Minor告诉您 Windows 版本的值 即 6 1 Windows 7 10 0 Windows 10 尽管
  • 在不创建主题的情况下更改 emacs 中特定文本的颜色

    是否可以选择您正在编辑的一段文本并更改其颜色 我知道可以创建一个颜色主题来为某些类型的文本着色 例如某种编程语言中的着色函数 但是是否可以对特定 emacs 中的选定文本片段进行一次性颜色更改不创建主题的文档 提前致谢 在任何情况下 主题都
  • 无法访问对象原型上的方法

    我可以创建一个Cat对象并在其原型上设置一个方法来打印猫的名字 var log function message var results result results append p message p function Cat name
  • 从 OnActionExecuting 重定向到外部 url?

    我需要从 OnActionExecuting 方法重定向到外部网址 比方说 www google com 现在我正在使用这样的东西 public override void OnActionExecuting ActionExecuting
  • 如何使用变换原点让 svg 元素从中心旋转? [复制]

    这个问题在这里已经有答案了 我正在尝试对 svg 矩形元素进行非常简单的旋转 我希望这个元素相对于它的中心旋转 我试图使用transform origin属性来实现这一点 参见代码片段 尽管尝试使用 center 或 50 从中心旋转 但它
  • 使用 sql 查询在 hibernate 中创建新的对象实例

    我正在尝试使用查询在 hibernate 中创建一个对象 然后该对象将被保存回表示该类的表中 hbm xml 文件摘录
  • Django simple_tag 和设置上下文变量

    我正在尝试使用 simple tag 并设置上下文变量 我使用的是 django 的 trunk 版本 from django import template register simple tag takes context True d
  • strstr 不工作

    如果我输入 test 为什么这段特定的代码在 strstr 上返回 false char input 100 int main fgets input 100 stdin printf s input if strstr test mess
  • Perl 中有正则表达式来查找文件扩展名吗?

    Perl 中有正则表达式来查找文件扩展名吗 例如 如果我有 test exe 我怎样才能得到 exe my file test exe Match a dot followed by any number of non dots until
  • Ubuntu 上的 JAVA_HOME 定义不正确?

    我正在尝试在 Ubuntu 14 04 中安装一些软件 Shibboleth 我已经安装了 Java 7 OpenJDK usr lib jvm 我有这些行 usr environment JAVA HOME usr lib jvm jav
  • SQLite,将数据集/数据表复制到数据库文件

    我已经用创建的表填充了数据集another数据库文件 该表不在我希望能够将表复制到的数据库文件中 现在我想将所有这些记录 DataTable 保存到新创建的 SQLite 数据库文件中 我怎样才能做到这一点 另外 如果可能的话 我真的想避免
  • Microsoft.Extensions.Logging 对比自然对数

    我看到很多帖子提到将 Microsoft Extensions Logging 与 NLog 一起使用 我想更好地了解 Microsoft Extensions Logging 的用途是什么 具体来说为什么需要它或者与 NLog 一起使用它
  • Mongoose 具有 true 的独特布尔值

    我知道如何将字符串设置为在我的架构上唯一 如下所示 string type String unique true 但是有没有一种方法可以在对象上拥有具有 true 值的唯一布尔值并使用 false 默认设置 我需要的是 如果我尝试保存一个具
  • 以编程方式发送短信,无需短信编辑器窗口

    直到昨天 我还认为不使用 IOS 短信接口就不可能发送后台短信 这里很多人也保证 然而 今天我下载了一个名为 SmartSender 的新应用程序 它可以安排您的短信 然后自动发送 我测试了它 短信实际上并不是在后台发送的 而是出现一个本地
  • 尝试创建一个具有 6 个放射线的圆形菜单

    我正在尝试使用 html 和 css 创建一个带有 6 个径向线的圆形菜单 我只得到 6 个径向线 边界 中的 5 个 我需要获得第 5 项和第 6 项之间的最后一个径向 我需要得到相同的图片 DEMO http jsfiddle net
  • 我可以使 C++11 类/对象普遍线程安全吗?

    读过 据我了解 我可以确保我的类是线程安全的对于所有线程实现 通过使用 C 11 互斥体 我的理解正确吗 我期待的是要么是 可能有警告 要么不是 有原因 我的代码可能需要在目标平台上重新编译 但不需要更改我的源代码 彼得 换句话说 我应该能
  • 如何在 Win32 C++ 程序在后台运行时检测按键

    我有一个程序 每当我最小化它时 它就会进入系统托盘 我想知道的是 a 当我的程序位于系统托盘中时 如何检测按键操作 b 我怎么知道他们在键盘上按下了什么 特别是功能按钮 您需要使用设置键盘挂钩设置WindowsHookEx http msd