C#驱动级模拟按键操作
2013-09-26 03:17 ·AB叔 447 3 <- 点击左侧的数字“攒”一个吧
昨天遇到一个程序自动输入财付通密码的任务。
因为财付通密码控件是有安全保护的,所以不能通过传统的Keybd_event来操作。
网上找了很多资料,终于找到winio.dll这个端口操作驱动程序组件来解决这个难题。
首先是需要用C#封装winio.dll,让它变得更加好用。
我这里已经封装好了SupKey.dll
- 注意,我的环境是win2003 32位,63位或者其他版本的时候可能需要下载对应的winio.dll。
- 注意,每次发送一次键盘事件需要等待一小段时间。
然后就是实际环境下测试了。
首先SendWinio来加载驱动,记得结束后EndWinio来卸载。
var supKey = new SupKey.SupKey();
supKey.SendWinio(); //加载
supKey.MykeyDown(SupKey.SupKey.VkA); //输入a
supKey.MykeyDown(SupKey.SupKey.VkB); //输入b
supKey.MykeyDown(SupKey.SupKey.VkC); //输入c
supKey.MykeyDown(SupKey.SupKey.VkD); //输入d
supKey.MykeyDown(SupKey.SupKey.VkNum0); //输入0
supKey.MykeyDown(SupKey.SupKey.VkNum1); //输入1
supKey.MykeyDown(SupKey.SupKey.VkNum2); //输入2
supKey.MykeyDown(SupKey.SupKey.VkNum3); //输入3
supKey.EndWinio(); //卸载