日期:2014-05-18  浏览次数:20771 次

模拟键盘的一个问题,一个星期了,还没解决
public const int KBC_KEY_CMD = 0x64;
public const int KBC_KEY_DATA = 0x60;
public void MykeyDown(int vKeyCoad)
{
int btScancode = 0;
btScancode = MapVirtualKey((byte)vKeyCoad, 0);
KBCWait4IBE();
SetPortVal(KBC_KEY_CMD, (IntPtr)0xD2, 1);
KBCWait4IBE();
SetPortVal(KBC_KEY_DATA, (IntPtr)0xe2, 1);
KBCWait4IBE();
SetPortVal(KBC_KEY_CMD, (IntPtr)0xD2, 1);
KBCWait4IBE();
SetPortVal(KBC_KEY_DATA, (IntPtr)btScancode, 1);
} //键盘按下
public void MykeyUp(int vKeyCoad)
{
int btScancode = 0;
btScancode = MapVirtualKey((byte)vKeyCoad, 0);
KBCWait4IBE();
SetPortVal(KBC_KEY_CMD, (IntPtr)0xD2, 1);
KBCWait4IBE();
SetPortVal(KBC_KEY_DATA, (IntPtr)0xe0, 1);
KBCWait4IBE();
SetPortVal(KBC_KEY_CMD, (IntPtr)0xD2, 1);
KBCWait4IBE();
SetPortVal(KBC_KEY_DATA, (IntPtr)btScancode, 1);
} //键盘弹起

这里我InitializeWinIo()已经加载成功了,所以不要问我是不是没有加载这个函数!

上面是键盘按下和弹起的一个函数过程,我要让程序自己按一个"a",我是这么写的:
MykeyDown(65);
sleep(100);
MykeyUp(65);
结果程序没有按a这个字母,那么我要怎么写?

------解决方案--------------------
http://download.csdn.net/download/sezooka/4276200

这个类库,可以帮助你解决这个问题