如何模拟按下自定义键盘键

时间:2018-02-15 19:42:07

标签: c# .net windows keypress

我有一个扩展键盘,我想模拟按键切换键盘模式的特殊键。为此,我认为我需要找出关键代码,但无法弄清楚我该如何获得它。它是我键盘上的一个额外键,不属于ConsoleKey enum的一部分,我发现用于捕捉键的唯一功能是使用此enum。< / p>

2 个答案:

答案 0 :(得分:1)

如果按键执行类似更改键盘颜色的操作,则取决于计算机上是否还有可以执行此操作的软件。如果没有,这可能只是键盘的本地切换,而键不在键盘本身的键盘上,以太。

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

答案 1 :(得分:0)

我想说功能键更改的逻辑是在键盘上。例如,我的笔记本电脑上的Fn键不会自行投射任何键盘事件,但当与某些其他键结合使用时,键控代码将被发送到操作系统,其密钥代码为触发某些功能。

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

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

tutorial on CodeProject可能对您有用。