C#驱动级模拟键盘操作(续)

2013-10-22 03:28 ·Ab叔 1788 7 <- 点击左侧的数字“攒”一个吧

在上一篇《C#驱动级模拟按键操作》中提到的操作模式只适合PS/2的键盘,并且必须是有插入键盘的情况下才能正确输入。

不适宜用在实际生产环境的。所以这篇将讲到真正驱动级别的键盘模拟操作方式。

适用于任何windows操作系统。之前使用的winio.dll限制颇多,并且只适用与PS2键盘。

安装:


运行 setup.exe 即可安装。

安装后系统中出现一个虚拟的键盘设备。可以通过设备管理器看到。名字叫 virtual keyboard

如何卸载:


1,删除 \winnt\system32\drivers 目录下 的 VKeyFdo.sys 文件。
2,重新启动计算机
3,在设备管理器中删除 设备 virtual keyboard

编写C#代码通过 应用程序接口 操作驱动。

	[DllImport("SendKey.dll")]
	public static extern IntPtr VKOpenVirtualKey();
	[DllImport("SendKey.dll")]
	public static extern void VKSendKeyEx(IntPtr hkey, StructVersionInfo s);


	Thread.Sleep(100);
	StructVersionInfo sd = new StructVersionInfo();
	sd.Count = 1;
	sd.MinorVersion = new StructVersionInfo2();
	sd.MinorVersion.Code = code;				//键盘扫描码参考《JIURL键盘驱动》
	sd.MinorVersion.Press = 1;

	var s = VKOpenVirtualKey();
	VKSendKeyEx(s, sd);

下载源代码