【问题标题】:How to simulate pressing a custom keyboard key如何模拟按下自定义键盘键
【发布时间】:2018-02-15 19:42:07
【问题描述】:

我有一个扩展键盘,我想模拟一个切换键盘模式的特殊键的按键。为此,我认为我需要找出关键代码,但不知道如何获得它。它是我键盘上的一个额外键,不是ConsoleKey enum 的一部分,我发现的唯一捕捉键的功能适用于这个enum

【问题讨论】:

  • 你说的“特殊键”指的是哪个键?是组合键还是单个键?
  • @RufusL 单键。这是普通键盘上没有的额外键
  • 那么它可能不是一个键,而是一个开关,它只是本地/隔离于键盘,对 PC 不可用。您能提供有关该键的更多详细信息吗?品牌/型号键盘等
  • @ErnodeWeerd 这是 SuperPower EZ 7000,这是照片keddr.com/wp-content/uploads/2013/03/… 我需要的是 Esc 右上角的照片
  • 按钮通常是做什么的?

标签: c# .net windows keypress


【解决方案1】:

如果按键做了改变键盘颜色之类的事情,这将取决于计算机上是否有软件也可以这样做。如果不是,这可能只是键盘的本地切换,并且该键不在键盘本身的键盘映射上,ether。

如果它改变了其他东西,这将取决于设备是否有驱动程序软件,或者它是否使用默认的 Windows 驱动程序。
如果它需要安装的软件,它可能是一个自定义事件(就像某些操纵杆一样),并且只有在您使用对键盘制造商分发的库的引用时才能找到。 如果没有,那么切换模式可能是与键盘固件相关的“重新映射”模式,并且只是更改了受影响的键发送的 KeyDown 事件。如果这是真的,Windows 甚至无法查看键盘的设置。

【讨论】:

  • 这个键不需要安装任何驱动程序,它的作用是切换键盘模式,像F1-F12这样的键会改变它们的行为
【解决方案2】:

我会说功能键更改的逻辑在键盘本身上。例如,我笔记本电脑上的 Fn 键本身不会投射任何键盘事件,但是当与 某些 其他键结合使用时,会向操作系统发送一个键码,该键码会触发某些功能。

例如,在我的键盘中,Fn + Left 降低了音量,但发送到操作系统的虚拟键是 VK_VOLUME_DOWN(有关虚拟键列表,请参阅 this。)

好消息是,您可以单独测试密钥以查看哪些密钥代码被发送到操作系统!为此,您可能需要使用 P/Invokes 设置 low-level keyboard hook)。

有一个tutorial on CodeProject 可能对你有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2014-11-12
    • 2021-12-14
    • 2019-02-23
    相关资源
    最近更新 更多