我问的原因是我正在考虑建立一个脚踏开关作为换档和控制键 - 两个开关,每只脚一个。
我打算使用Arduino来编写一个小的C#应用程序,以检测何时按下开关,然后设置移位或控制状态。我宁愿不必为Arduino编写键盘驱动程序,因为我希望它也能做其他事情。
答案 0 :(得分:9)
是的,这是可能的,但你必须pInvoke到Win32。看看keydb_event来电。
[DllImport("user32.dll", SetLastError = true)]
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
然后你可以打电话:
keybd_event(0x10, 0, 0, 0);
打开shift键(即按键),然后:
keybd_event(0x10, 0, 2, 0);
再次将其关闭(即按键)。
第一个参数是要按的键的十六进制值:
我刚刚在一个简单的C#应用程序中尝试使用复选框来表示shift键。选中它后,它会“保留”换档键,用于我使用的任何应用程序。
答案 1 :(得分:0)
如果您只对控制前台应用程序感兴趣,最简单的解决方案是将WM_KEYDOWN和WM_KEYUP消息发送到活动应用程序,以便按下和释放踏板。
我可能会弄错(并且更明智的是,如果我是,请随时纠正我!)但我相信要创建一个实际的系统级按键事件 - 例如使 Windows 为您创建keydown / keyup消息,即使您在按下踏板时更改应用程序也能正常工作 - 您需要编写输入驱动程序。