C#驱动级模拟按键操作

C#驱动级模拟按键操作

2013-09-26 03:17 ·AB叔 447 3 <- 点击左侧的数字“攒”一个吧

昨天遇到一个程序自动输入财付通密码的任务。

因为财付通密码控件是有安全保护的,所以不能通过传统的Keybd_event来操作。

网上找了很多资料,终于找到winio.dll这个端口操作驱动程序组件来解决这个难题。

首先是需要用C#封装winio.dll,让它变得更加好用。

我这里已经封装好了SupKey.dll

  1. 注意,我的环境是win2003 32位,63位或者其他版本的时候可能需要下载对应的winio.dll。
  2. 注意,每次发送一次键盘事件需要等待一小段时间。

然后就是实际环境下测试了。

首先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();                      //卸载

下载源代码

时间: 2024-08-04 15:02:59

C#驱动级模拟按键操作的相关文章

Android随笔之——模拟按键操作的几种方式

前几天转过一篇Android上模拟按键操作.触屏事件的博客,昨天又去找了百度.谷歌了一下,写了一点简单的测试代码,留待不时之需.有需要看之前转载的那篇博客的请看这里→_→转:Android随笔之——使用Root权限实现后台模拟全局按键.触屏事件方法(类似按键精灵),这里我就直接上代码了. 1 package com.lsj.keyboardsample; 2 3 import android.app.Activity; 4 import android.app.Instrumentation;

C# 模拟键盘按键操作

[DllImport("user32.dll")] public static extern IntPtr keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtralnfo); private void KeyTab() { keybd_event(9, 0, 0, 0); // keybd_event(9, 0, 1, 0); }//百度百科地址:http://baike.baidu.com/view/1080077.htm

驱动级模拟驱动级模拟:直接读写键盘的硬件端口!

驱动级模拟驱动级模拟:直接读写键盘的硬件端口! 有一些使用DirectX接口的游戏程序,它们在读取键盘操作时绕过了windows的消息机制,而使用DirectInput.这是因为有些游戏对实时性控制的要求比较高,比如赛车游戏,要求以最快速度响应键盘输入.而windows消息由于是队列形式的,消息在传递时会有不少延迟,有时1秒钟也就传递十几条消息,这个速度达不到游戏的要求.而DirectInput则绕过了windows消息,直接与键盘驱动程序打交道,效率当然提高了不少.因此也就造成,对这样的程序无

Android(Linux)模拟按键、触摸屏等事件

前提: 在我们应用程序或者在写Android自动化测试时候常常会需要模拟实体按键,来给我们做测试用.这也是我要整理的目的.主要的涉及的是Linux Input Event事件.以下的例子基于Android 5.1(Linux-3.10). 一.利用getevent.sendevent模拟按键 (1)命令:getevent -t 结果: ... add device 6: /dev/input/event9 bus: 0000 vendor 0000 product 0000 version 00

Android及Robotium学习总结【环境变量,真机调试及根据id模拟按键】

本文为转载文章,原文地址为:http://blog.sina.com.cn/s/blog_6abda9bc01015zoc.html Keyword:Android,Robotium,自动化测试,黑盒测试,已知id如何模拟按键 纯属爱好,最近学习了Android及其自动化测试,总算对Android有了个大概的了解. 毕业后就是用的C,从未用过java,并且最近4年几乎没怎么摸过代码,现在学习android还是有点费劲:不过还好,自我觉得理解的很快,别人碰到的问题我都碰到了,很多网上都有答案.其中

python爬虫入门(五)Selenium模拟用户操作

爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争... 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpClient库),不断地遍历某站的电影列表页面,根据 Html 分析电影名字存进自己的数据库. 这个站点的运维小黎发现某个时间段请求量陡增,分析日志发现都是 IP(xxx.xxx.xxx.xxx)这个用户,并且 user-agent 还是 Python-urllib/2.7 ,基于这两点判断非人类后直接在服务器上封杀

使用vue2.0 vue-router vuex 模拟ios7操作

其实你也可以,甚至做得更好... 首先看一下效果:用vue2.0实现SPA:模拟ios7操作 与 通讯录实现 github地址是:https://github.com/QRL909109/ios7 如果您觉得可以,麻烦给一个star,支持我一下. 之前接触过Angular1.0,React,都只是学点入门,但对于Vue却觉得很容易上手,不止入门简单,插件也是很丰富的,脚手架也是便利的很... 项目分析: 1.首屏滑动解锁,并能移动小圆点 2.主屏幕  长按图标抖动,删除图标,点击小圆点的主屏幕

jQueryAjax模拟按键消抖(可设置抖动延迟时间)

在硬件中,按键等都会有抖动现象,如何消除抖动,不重复触发事件呢,这就要用到消抖机制了. 这是我用jQuery模拟硬件消抖原理,额,可能是吧...又不对的地方,希望有高手指点指点. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

C语言模拟按键代码

其实 keybd_event 这个API的模拟按键需要按键码,如果用户输入一个字符,怎么用这个API打印出来呢?其实很简单.这个我是在易语言中发现的易语言中的一个 #R键 的值和R的ASCII码是一样的.也就是说,用户输入一个字符,用keybd_event这个API打印出来是很简单的.我们可以全部读取,取出一个字符的ASCII码,然后打出来,再取出另一个,以此类推......全部读取的话用动态数组是很好实现的. 拼音必须是大写的,否则打的可能都是数字还有一个MFC版本的 http://www.c