Today's the day

向软件大牛炫耀我会焊单片机,向硬件大牛炫耀我会写 Rails,向软硬件大牛炫耀我生物,向软硬件生物大牛炫耀我会折腾期货 -_-bbb

手持 Mini 键盘
用自制 Mini 键盘无限冰

自定义 Mini 键盘按键

galeki posted @ 2010年5月28日 13:05 in 单片机 , 5067 阅读

手持 Mini 键盘虽然搞定了,但是设置起来比较麻烦,要切换按键配置的话,得重新编译硬件上的程序再烧进去才行。

当初也想做个切换开关在键盘上,并预置几种键盘配置,这样就可以通过切换开关来切换配置了。

不过后来发现自己白痴了,既然是 USB 的,为什么不通过电脑上的 GUI 客户端来设置呢。

于是快速的写好 GUI 端,硬件上也设置好,接收到传来的设置数据,就按照数据变更键盘的配置。

不过调试的时候发现无论如何都无法发送数据给硬件,Google 了一下发现问题严重了……

原因是,像 USB 键盘和鼠标这类 HID 输入设备,Windows 把它们注册为默认设备,并且截获了所有的数据传送,也禁止别的程序来打开硬件句柄,自然就无法发送和读取数据了。仔细想想也合理,否则任何一个第三方程序都可以随便的读取键盘和鼠标数据了。市场上很少见这类可以自由配置按键的键盘,也许就是这个原因吧。

之后又去翻了翻文档,发现似乎可以用 HID 中的 Feature Report 来交换数据,但是尝试了一下没有成功,难道最终要实现这个功能,还得去麻烦的给这个键盘写个驱动程序吗?

最后,用了一种妥协的办法:

硬件上电之后,先注册成 Custom HID 设备,这样就可以接受设置数据。在接受到设置数据之后,再软件模拟硬件从 USB 接口上拔下并插上的动作,这样操作系统就会再次枚举这个硬件,然后在这个时候,再把硬件注册成一个键盘,这样的代价就是第二次设置的时候需要再次插拔一下键盘。

尝试了一下,成功了~  这样一个任何驱动也不用,即插即用的又可以配置按键的 Mini 手持键盘诞生了~~~

这样就可以随便调整键盘的按键了,比如 “拷贝 and 粘贴” 模式:

还可以 “切换程序 and 任务管理器/重启” 模式:

无敌方便~

  • 无匹配
  • 无匹配
fan 说:
2010年5月28日 19:46

站长是觉得的“超级懒人”啊!!硬件上不能跟着做了。下次再分享些软件的偷懒方法 (*^__^*)

Avatar_small
galeki 说:
2010年5月29日 01:30

也许我可以分享下精神上的偷懒方法~~

Avatar_small
pingf 说:
2010年6月01日 03:27

恩...不错不错....
离我向你炫耀我生物又近了一大步......

Avatar_small
galeki 说:
2010年6月01日 10:18

我要发生物文,卡卡~

Avatar_small
纵横天下 说:
2010年10月03日 21:43

WEB大牛也开始研究WPF了啊

Avatar_small
galeki 说:
2010年10月04日 00:05

当初做项目突击学习的,现在已经忘得差不多了汗


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter