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

下载源代码

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

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

    前几天转过一篇Android上模拟按键操作.触屏事件的博客,昨天又去找了百度.谷歌了一下,写了一点简单的测试代码,留待不时之需.有需要看之前转载的那篇博客的请看这里→_→转:Android随笔之——使 ...

  2. C#获取窗口,模拟按键操作

    C#获取窗口,模拟按键操作,实现计算器模拟操作.首先引用. using System.Runtime.InteropServices; 使用DllImport引入两个函数: // Get a hand ...

  3. UI自动化测试(四)AutoIT工具使用和robot对象模拟键盘按键操作

    AutoIT简介 AutoIt 目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/ ...

  4. selenium学习-模拟键盘按键操作

    导入  from selenium.webdriver.common.keys import Keys  格式:Keys.XXX 一般这么用:send_keys(Keys.XXX) # coding= ...

  5. HTML 事件(四) 模拟事件操作

    本篇主要介绍HTML DOM中事件的模拟操作. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4.  ...

  6. Unity 实现模拟按键

    一直在想,使用模拟按键,也可以实现一些AI操作,具体还没做过,这里使用user32.dll在unity里写的一个简单demo using UnityEngine; using System.Colle ...

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

    爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争... 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpClient库), ...

  8. 爬虫模块介绍--selenium (浏览器自动化测试工具,模拟可以调用浏览器模拟人操作浏览器)

    selenium主要的用途就是控制浏览器,模仿真人操作浏览器的行为 模块安装:pip3 install selenium 需要控制的浏览器 from selenium import webdriver ...

  9. adb命令模拟按键输入keycode

    adb命令模拟按键输入keycode 2017年05月18日 14:57:32 阅读数:1883 例子: //这条命令相当于按了设备的Backkey键 adb shell input keyevent ...

随机推荐

  1. OkHttp+Stetho+Chrome调试android网络部分(原创)

    android网络调试一直是一个比较麻烦的部分,因为在不同序列的请求中,返回的数据会有不同的变化,如果能像web开发一样使用调试功能查看页面的访问数据该是多么美好的事情! 很幸运的是,现在Androi ...

  2. 哈希表类Hashtable

    哈希表是一种重要的存储方式,也是一种常见的检索方法.其基本思想是将关系码的值作为自变量,通过一定的函数关系计算出对应的函数值,把这个数值解释为结点的存储地址,将结点存入计算得到存储地址所对应的存储单元 ...

  3. 【BZOJ】3297: [USACO2011 Open]forgot(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3297 这题拖了很久呢... 很久以前写了个dfs,,但是tle了..... 然后一直想dp想不出来, ...

  4. 【BZOJ】3432: [Usaco2014 Jan]Cross Country Skiing (bfs+二分)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3432 题目说要相互可达,但是只需要从某个点做bfs然后判断其它点是否可达即可. 原因太简单了.... ...

  5. 《The Swift Programming Language》的笔记-第24页

    The Swift Programming Language读书笔记学习笔记 第24页 本页主要内容有两个:打印输出和怎样在swift凝视代码 1 怎样打印变量和常量的值? 使用println函数,细 ...

  6. HasMany() = (1..*) HasOptional() = (1..0,1) HasRequired() = (1..1)

    http://www.cnblogs.com/yeagen/archive/2012/10/15/2724237.html

  7. mybatis 处理 mysql 表中的 text类型的 字段

    在mysql 中 text类型的字段: service_detail text NULL 服务描述   . 对应java文件中 model 中的 String:  private String ser ...

  8. 160805、oracle查询:取出每组中的第一条记录

    在Java 9发布之前,我们来分享一些Java 8开发技巧 [以下为译文] 在使用JAVA 8进行开发多年后,结合个人使用IntelliJ IDEA的心得,我总结了以下几个JAVA8技巧供大家参考. ...

  9. Hessian接口测试

  10. Powershell Get File/Disk Size

    知识点: 1.获取路径中的文件夹:Get-ChildItem $startFolder  | Where-Object {$_.PSIsContainer -eq $True} | Sort-Obje ...