如何使用低级 8 位标志作为条件?

2024-01-02

在我的键盘钩子中,每次按键都会有一个标志,表明它是否被注入。http://msdn.microsoft.com/en-us/library/ms644967(VS.85).aspx http://msdn.microsoft.com/en-us/library/ms644967(VS.85).aspx

我从 lParam 中提取了 KBDLLHOOKSTRUCT。我可以访问 kbd.flags.XXX。我只是不知道如何将这个8位标志转换为if (injected) {...输入我知道如何使用的条件。

如果你们中的一位聪明的计算机科学人士能够帮助我,我将非常感激。

    private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
    {
        KBDLLHOOKSTRUCT kbd = new KBDLLHOOKSTRUCT();
        Marshal.PtrToStructure(lParam, kbd);

        //if (injected) {...

Cheers!


.NET 通过 [Flags] 属性支持此功能:

[Flags]
enum KbdHookFlags {
  Extended = 0x01,
  Injected = 0x10,
  AltPressed = 0x20,
  Released = 0x80
}

使用示例:

  KBDLLHOOKSTRUCT info = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT));
  if ((info.flags & KbdHookFlags.Released) == KbdHookFlags.Released) {
    // Key was released
    // etc..
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用低级 8 位标志作为条件? 的相关文章

  • 使用 Xamarin.Forms 和 Zxing 生成 QR 码

    我在网上看到了很多关于这个的内容 旧帖子 但似乎没有什么对我有用 我正在尝试从字符串中生成二维码并将其显示在应用程序中 这就是我一开始的情况 qrCode new ZXingBarcodeImageView BarcodeFormat Ba
  • libtool 在 Ubuntu 13.04 上构建 thrift 0.9.1 时出错

    在 Ubuntu 13 04 上构建 thrift 0 9 1 支持 C C java C perl python 时出现此错误 configure 不带任何选项运行 make 不带任何选项运行 Making all in test mak
  • C# Outlook 从收件人获取 CompanyName 属性

    我目前正在使用 C 编写 Outlook 2010 AddIn 我想要的是从我从 AppointmentItem 中提取的 Recipient 对象中获取 CompanyName 属性 因此 有了 AppointmentItem 的收件人
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 以下 PLINQ 代码没有改进

    我没有看到使用以下代码的处理速度有任何改进 IEnumerable
  • make_shared<>() 中的 WKWYL 优化是否会给某些多线程应用程序带来惩罚?

    前几天我偶然看到这个非常有趣的演示 http channel9 msdn com Events GoingNative GoingNative 2012 STL11 Magic Secrets作者 Stephan T Lavavej 其中提
  • 虚拟并行端口模拟器

    在我的计算机网络课程中 我们应该通过使用本机寄存器 例如使用 outportb 等命令 来学习并行端口编程 我没有并行端口 因为我住在 2011 年 但想练习这些程序 我使用 dosbox 安装了旧的 Turboc 3 IDE 有没有一个程
  • Nhibernate:连接表并从其他表获取单列

    我有以下表格 create table Users Id uniqueidentifier primary key InfoId uniqueidentifier not null unique Password nvarchar 255
  • 关闭整数的最右边设置位

    我只需要关闭最右边的设置位即可 我的方法是找到最右边位的位置 然后离开该位 我编写这段代码是为了这样做 int POS int n int p 0 while n if n 2 0 p else break n n 2 return p i
  • 判断串口是普通COM还是SPP

    我正在寻找一种方法来确定 COM 是标准 COM 还是 SPP COM 也称为 COM 设备的电缆替换蓝牙适配器 我有一个可以在 USB COM gt USB 和蓝牙下工作的设备 并且蓝牙接口可以与 SPP 一起工作 我目前正在使用Syst
  • 提升mapped_file_source、对齐方式和页面大小

    我正在尝试在性能很重要的上下文中解析一些大小高达几百兆字节的文本文件 因此我使用 boostmapped file source 解析器期望源以空字节终止 因此我想检查文件大小是否是页面大小的精确倍数 如果是 则使用较慢的非内存映射方法 我
  • 为什么 std::function 不是有效的模板参数,而函数指针却是?

    我已经定义了名为的类模板CallBackAtInit其唯一目的是在初始化时调用函数 构造函数 该函数在模板参数中指定 问题是模板不接受std function作为参数 但它们接受函数指针 为什么 这是我的代码 include
  • 在 C 语言中替换宏内的宏

    我正在尝试使代码部分可重用 我下面的评论片段没有达到我想要的效果 define NAME ABC define LOG SIZE NAME LEN 我想LOG SIZE决心ABC LEN 我尝试过使用 但没能让它发挥作用 LOG SIZE在
  • 测验;这个编译了吗?如果是的话它会返回什么(我知道答案)

    我最近发现这个错字 if name find string npos 显然开发者的意思是输入 if name find string npos 但令我惊讶的是发现错误甚至编译 Wall Werror 没有尝试过 pedantic 那么 咖啡
  • WPF DataGrid - 在每行末尾添加按钮

    我想在数据网格的每一行的末尾添加一个按钮 我找到了以下 xaml 但它将按钮添加到开头 有人知道如何在所有数据绑定列之后添加它吗 这会将按钮添加到开头而不是末尾
  • 使用 Unity 在 C# 中发送 http 请求

    如何使用 Unity 在 C 中发送 HTTP GET 和 POST 请求 我想要的是 在post请求中发送json数据 我使用Unity序列化器 所以不需要 新的 我只想在发布数据中传递一个字符串并且能够 将 ContentType 设置
  • 时间:2019-03-17 标签:c#TimerStopConfusion

    我想通过单击按钮时更改文本颜色来将文本框文本设置为 闪烁 我可以让文本按照我想要的方式闪烁 但我希望它在闪烁几次后停止 我不知道如何在计时器触发几次后让它停止 这是我的代码 public Form1 InitializeComponent
  • 在二进制数据文件的标头中放入什么

    我有一个模拟 可以读取我们创建的大型二进制数据文件 10 到 100 GB 出于速度原因 我们使用二进制 这些文件依赖于系统 是从我们运行的每个系统上的文本文件转换而来的 所以我不关心可移植性 当前的文件是 POD 结构的许多实例 使用 f
  • 如何知道 HTTP 请求标头值是否存在

    我确信这很简单 但是却让我感到厌烦 我在 Web 应用程序中使用了一个组件 它在 Web 请求期间通过添加标头 XYZComponent true 来标识自身 我遇到的问题是 如何在视图中检查此组件 以下内容不起作用 if Request

随机推荐

  • Angular-CLI for Angular2如何加载环境变量

    我是 angular cli 的新手 想要通过 env 为我的 api 服务调用加载 url 例如 local http 127 0 0 1 5000 dev http 123 123 123 123 80 prod https 123 1
  • 如何仅在某些模式下启用空白模式

    我正在尝试获取 emacswhitespace mode仅在某些模式下自动启用 根据文档 启用global whitespace mode并设置whitespace global modes变量应该完全做到这一点 但我无法让它正常工作 In
  • 即使导入脚本也找不到 Scrollify 函数

    所以我尝试使用 Scrollify 这是一个用于滚动捕捉的 jQuery 插件 我导入 jQuery 没有问题 但无论我如何导入插件本身 我都会收到错误 Uncaught TypeError scrollify is not a funct
  • 如何在 Azure AD 加入设备上的任务计划程序中选择用户

    如何在已加入 Azure AD 的设备上选择 Azure AD 用户帐户 我刚刚遇到这个问题并使用以下步骤解决了它 在任务计划程序中正常创建任务 在安全选项中选择任何本地用户 将任务导出到 xml 文件 从任务计划程序中删除任务 打开cmd
  • (excel 2013) 带有 VLOOKUP 函数的 3D 公式

    前段时间我在这里问过类似的问题单元格位置相同的 3D 公式 https stackoverflow com questions 25352610 excel 2013 dynamic change of formula depending
  • 非常简单的c ++:fstream中的运算符>>在读取某些内容后是否会删除换行符?

    file in 12 13 main cpp fstream f file in ios in int n char c f gt gt n f get c 提取数字12后 下一个字符是什么 是换行符还是 1 如果我调用 getline 而
  • Android 数据绑定与自定义视图

    The Android 数据绑定指南 http developer android com tools data binding guide html讨论了活动或片段中的绑定值 但是有没有办法使用自定义视图执行数据绑定 我想做这样的事情
  • 使用 OpenSSL.NET 和现有密钥解密 RSA

    我有以下代码使用 OpenSSL Net 生成 OpenSSL RSA 公钥和私钥 但是 我似乎找不到使用给定私钥解密数据的方法 我知道如果我调用生成密钥 然后调用相应的方法来加密和解密数据 它就可以正常工作 但是 如果我尝试从给定公钥的外
  • 找到R中两个数据帧之间的公共ID

    有以下数据框 id1 lt c 1 2 3 4 5 spent lt c 10 20 30 40 50 id2 lt c 1 3 4 x lt c 1 2 2 df1 lt data frame id1 spent df2 lt data
  • MVC 架构和模态对话框窗口

    我正在开发一个MVC架构的项目 它应该是一个管理一些客户的简单应用程序 MainModel MainView 和 MainController 类使主窗口显示客户表的内容并让用户插入 删除或编辑客户 我的问题是插入和编辑按钮应该显示一些对话
  • 将主键int类型更改为serial

    有没有办法在不删除表的情况下将现有主键类型从 int 更改为串行 我表里已经有很多数据了 我不想删除它 将 int 转换为序列或多或少仅意味着向值添加序列默认值 http www postgresql org docs 9 3 static
  • Kubernetes POD 参数未传递到服务,但 Docker 参数正确传递

    问题陈述 我已经成功创建了一个 Docker 镜像docker io joethecoder2 spring boot web 它已经使用命令行参数进行了测试 并且这些参数可以在 Docker 本地正常工作 我正在尝试将传递给 Docker
  • 推送视图应以透明背景显示

    我只是从一种观点推论另一种观点 在此代码之后 推送的视图将显示为透明 我之前已经用过很多次了 就这么简单 settings set settings alloc initWithNibName settings bundle nil set
  • req.body 无法作为数组读取

    我正在使用 node js 接收发布请求 请求正文在使用打印后具有此内容console log object 1 deviceType iPad Retina guid DF1121F9 FE66 4772 BE74 42936F1357F
  • 添加锚点到 RedirectToAction 结果?

    我正在尝试创建一个类似于的扩展方法MVCContrib 的 RedirectToAction 方法 http mvccontrib codeplex com SourceControl changeset view c0a43d6843a7
  • iOS Foundation:系统字体大小

    我想知道iOS应用程序tableView中的systemFontSize是否是always文本标签也一样吗 这是取决于风格 例如当我NSLog f UIFont systemFontSize 我已经14 0了这总是一样的吗 更重要的是 如何
  • 创建具有多个选项的 Python 函数的最佳方法?

    我定义了一堆自定义函数 并发现其中很多包含一些相同或相似的代码块 例如 仅包含略有不同的字符串或参数 所以像这样 def func1 a b c some identical code some similar code more iden
  • 有没有办法将 Linux 管道设置为非缓冲或行缓冲?

    我的程序正在控制 Linux 上的外部应用程序 通过管道将输入命令传递到外部应用程序 stdin 并通过管道从外部应用程序 stdout 读取输出结果 问题在于 对管道的写入是按块缓冲的 而不是按行缓冲的 因此在我的应用程序接收外部应用程序
  • 如何在 Bigquery 中查询多个 Firebase 项目?

    如何放置 Select 查询以从多个 Firebase 项目中提取数据 如何在单个查询中查询 abc 项目和 xyz 项目 目前 我正在放置两个查询来从项目 abc 和 xyz 及其数据集表中提取数据 查询abc项目 SELECT app
  • 如何使用低级 8 位标志作为条件?

    在我的键盘钩子中 每次按键都会有一个标志 表明它是否被注入 http msdn microsoft com en us library ms644967 VS 85 aspx http msdn microsoft com en us li