C# 主动检测Lock键

2023-12-06

我有一个无线键盘和鼠标,没有任何锁定指示器,也没有任何捆绑软件来提供视觉帮助,所以我正在制作自己的。

我明白了,如果我点击一个notifyIcon,它会列出哪些锁已打开,但我想通过在锁接合后提醒我来使其更智能。

我在网上找到了一些项目,但老实说我只想要锁键,我不关心任何其他键盘按键。

我正在使用 C# .NET 4,不过如果该版本有的话我也可以使用 .NET 4.5。

Thanks.


您将需要注册某种键盘挂钩来监听按键,然后检索锁定键的状态,如下所示:
http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

除了上述文章之外,还可以进行以下修改以捕获锁定键的状态:

private static IntPtr HookCallback(
    int nCode, IntPtr wParam, IntPtr lParam)
{
    if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
    {
        int vkCode = Marshal.ReadInt32(lParam);
        Keys key = (Keys)vkCode;
        if (key == Keys.Capital)
        {
            Console.WriteLine("Caps Lock: " + !Control.IsKeyLocked(Keys.CapsLock)); 
        }
        if (key == Keys.NumLock)
        {
            Console.WriteLine("NumLock: " + !Control.IsKeyLocked(Keys.NumLock));
        }
        if (key == Keys.Scroll)
        {
            Console.WriteLine("Scroll Lock: " + !Control.IsKeyLocked(Keys.Scroll));
        }
        Console.WriteLine((Keys)vkCode);
    }
    return CallNextHookEx(_hookID, nCode, wParam, lParam);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 主动检测Lock键 的相关文章

  • Volatile.Read 和 Volatile.Write 背后的逻辑是什么?

    来自 MSDN Volatile Read 读取字段的值 在需要它的系统上 插入一个 阻止处理器重新排序内存的内存屏障 操作如下 如果在该方法之后出现读或写 代码 处理器无法移动它before这个方法 and Volatile Write
  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • C free() 是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 malloc 和 free 如何工作 https stackoverflow com questions 1119134 how malloc and free work include
  • 叮当错误?命名空间模板类的朋友

    以下代码在 clang 下无法编译 但在 gcc 和 VS 下可以编译 template
  • 并行化斐波那契序列生成器

    我正在学习并行化 在一项练习中 我得到了一些我应该提高性能的算法 其中之一是斐波那契数列生成器 array 0 0 array 1 1 for q 2 q lt MAX q array q array q 1 array q 2 我怀疑 这
  • 如果 JSON.NET 中的值为 null 或空格,则防止序列化

    我有一个对象需要以这样的方式序列化 即 null 和 空白 空或只是空格 值都不会序列化 我不控制对象本身 因此无法设置属性 但我知道所有属性都是字符串 环境NullValueHandling显然 忽略 只能让我找到解决方案的一部分 它 似
  • while循环中的变量初始化

    我有一个可以分块读取文件的函数 public static DataObject ReadNextFile 数据对象看起来像这样 public DataObject public string Category get set And ot
  • 你好,我最近正在开发我的新游戏,我遇到了*无限跳跃*的问题

    所以基本上当我按跳跃 空格键时我会跳跃但是如果我连续按空格键它 只是跳啊跳啊跳等等 我不想要我只想它跳一次 code if Input GetKeyDown space isGrounded velocity y Mathf Sqrt ju
  • 使用 C# 中的 Google 地图 API 和 SSIS 包获取行驶距离

    更新 找到了谷歌距离矩阵并尝试相应地修改我的代码 我在这里收到无效参数错误 return new GeoLocation dstnc uri ToString catch return new GeoLocation 0 0 https 基
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • 时间:2019-03-17 标签:c++fstream并发访问

    如果从不同的进程 线程同时访问文件会发生什么 据我所知 没有锁定文件的标准方法 只有操作系统特定的功能 就我而言 文件将被经常读取而很少写入 现在如果A打开一个文件进行读取 ifstream 并开始读取块 和B打开相同的文件进行写入 ofs
  • Resharper:IEnumerable 的可能多重枚举

    我正在使用新的 Resharper 版本 6 在我的代码中的几个地方 它给一些文本加了下划线 并警告我可能存在IEnumerable 可能的多重枚举 我理解这意味着什么 并在适当的情况下采纳了建议 但在某些情况下 我不确定这实际上是一个大问
  • 为什么不能调用带有 auto& 参数的 const mutable lambda?

    include
  • 使用 OleDbCommandBuilder 时访问 SQL 语法错误

    我要在 C 中使用 OleDbDataAdapter 在 Access 数据库中插入数据 但收到错误消息INSERT INTO 命令中的语法错误 BackgroundWorker worker new BackgroundWorker Ol
  • C# 中的 C/C++ 代码编译器

    在 C 中 我可以使用下面的代码编译 VB 和 C 代码 但无法编译 C C 代码 有什么办法可以做到这一点吗 C 编译器 public void Compile string ToCompile string Result null st
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • 浮点字节序?

    我正在为实时海上模拟器编写客户端和服务器 并且由于我必须通过套接字发送大量数据 因此我使用二进制数据来最大化可以发送的数据量 我已经了解整数字节顺序以及如何使用htonl and ntohl为了规避字节顺序问题 但我的应用程序与几乎所有模拟
  • printf或iostream如何指定点后的最大位数

    字符串采用什么格式printf or iomanip我应该使用 iostream 中的运算符以以下格式打印浮点数 125 0 gt 125 125 1 gt 125 1 125 12312 gt 125 12 1 12345 gt 1 12
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad

随机推荐

  • VS 2017 程序无法识别“scoped_lock”

    我在 VS 2017 中使用scoped locked 时遇到了问题 我相信我将它们追溯到
  • JavaFX 表列,SceneBuilder 未填充

    我一直在看教程 但似乎无法找到表格来填充 我也在使用 net beans 和 scenebuilder 任何帮助将不胜感激 奋斗了5个小时 这是我的代码Controller class public class FXMLDocumentCo
  • Mysql 无法连接,因为目标机主动拒绝

    我知道已经有很多人问过这个问题 但是这些人大多忘记了密码或被防火墙阻止 而我没有这种情况 我正在使用 php 进行开发 我需要连接到远程数据库以便让我的所有团队都可以使用它 localhost 一切正常 但是当我尝试切换时 它给了我这个错误
  • 类型错误:“模块”对象不可调用

    File C Users Administrator Documents Mibot oops blinkserv py line 82 in init self serv socket AF INET SOCK STREAM TypeEr
  • iBook 页面翻转过渡

    我正在尝试为 pdf 阅读器应用程序在横向模式下重新创建类似 iBook 的页面过渡 我只需要动画 不需要像 iBook 应用程序那样的触摸处理 用户通过简单的滑动即可翻页 我尝试了不同的示例代码 包括Leaves 但我找不到任何简单的东西
  • 在 M1 Mac 上的 Rosetta 2 模拟下,Ansible 返回的“ansible_machine”和“ansible_architecture”是什么

    在 M1 MacBook 上 ansible architecture and ansible machine返回相同的值arm64 shuuji3 momo mac dev playbook gt ansible m setup loca
  • 执行流程链

    public void ExecuteProcessChain string asProcesses string sInRedirect string sOutRedirect Process p1 new Process p1 Star
  • 如何获取外部控制器当前的$sce?

    为了获取控制器外部的当前 scope 我可以使用 var scope angular element ng controller ProductCtrl scope 如何获取当前控制器 sce The sce是一项服务 因此您可以使用注入器
  • 如何创建 .jar 文件?

    In the tutorial我发现jar文件可以通过以下方式创建 jar cf jar file input file s 但是 尚不清楚输入文件是什么 那是 java 文件还是 class 文件 从同一页面上的示例中 我可以假设应该是
  • json_encode 具有私有属性的对象数组

    我正在寻找一种对对象数组使用 json encode 的有效方法 我遇到的问题是我的对象都有私有属性 使用 getters 和 setters 并且 json encode 不会将它们拉进来 所以我为一个对象创建了一个 jsonSerial
  • Java 中 isDirectory 和 isFile 的 File 始终返回 false

    为什么文件返回 falseisFile 方法 即使它是文件 当它是目录时 它返回 falseisDirectory 难道我做错了什么 我测试的这些文件 目录不存在 我需要创建它们 所以这就是我测试是否应该使用的原因createFile or
  • 使用 jQuery 获取当前事件处理程序的值

    我可以通过调用使用 jQuery 设置 onclick 处理程序 id click function console log click 同样使用 jQuery 我如何获取当前正在处理 click 事件的函数的引用 原因是我有另一个对象 并
  • 当outputDirectory或outputFileName更改时启动调试应用程序时AS找不到apk

    我正在使用 Android Studio 来调试我的应用程序 由于某些原因 我必须更改默认输出 apk 目录和文件名 所以我在应用程序的build gradle脚本中更改了applicationVariants的outputDirector
  • Java While 循环中的字符串条件

    我试图提示用户给我三个字符串之一 阿姆斯特丹 列克星敦 和 麦迪逊 如果用户没有输入这些字符串之一 则应反复提示他们 直到他们输入为止 当我输入一个应该可接受的字符串 例如 列克星敦 时 我仍然收到 请输入有效的城市 谁能告诉我当我否定其中
  • 如何区分泛型中的MethodBase

    我有一个基于的缓存 Dictionary
  • 从 Spotify 应用程序内访问 Spotify 元数据 API?

    我想从 Spotify 应用程序中运行 Spotify 搜索 查找某个艺术家的曲目 我没有该艺术家的 Spotify URI 只有名称 我没有在 App API 中找到运行搜索的功能 另一种选择是与ws spotify com访问 Spot
  • 将列表写入 csv 文件而不在 python 中循环

    我有一个列表列表 我需要将其写入 csv 文件 mylist Siddharth Bangalore email protected Rahul Bangalore email protected and so on 该列表通常大约有 20
  • AWS CFN 错误“参数 groupName 不能与参数子网一起使用”

    使用以下 yaml 时出现错误 我检查了代码 但我不认为有任何问题 我的结构计划有一个带有 2 个公有子网和 2 个私有子网的 VPC 一个Web服务器实例将放置在公共子网2中 我认为该问题可能与实例创建有关 因为该错误是在实例创建过程中出
  • Razor:如果模型是 List<>,则 @Html.LabelFor 创建空的“for”字段

    如果模型是对象列表 那么 Html LabelFor model gt model i member 创建一个空的for属性 DisplayName 工作正常 模型绑定也工作得很好 唯一不起作用的是for属性 下面有两个版本的MVC代码 前
  • C# 主动检测Lock键

    我有一个无线键盘和鼠标 没有任何锁定指示器 也没有任何捆绑软件来提供视觉帮助 所以我正在制作自己的 我明白了 如果我点击一个notifyIcon 它会列出哪些锁已打开 但我想通过在锁接合后提醒我来使其更智能 我在网上找到了一些项目 但老实说