CSDN高手进来,难道都是菜鸟?
用winio.dll模拟硬件(底层驱动)的鼠标左键点击动作。
遇到问题是,按下动作执行了,可是释放没执行,即鼠标左键一直处于按下状态,如何解决?
sendKey.MyMouseDown(0x09); //发送左键按下
sendKey.MyMouseDown(0);
sendKey.MyMouseDown(0);
sendKey.MyMouseDown(0);
sendKey.MyMouseUp(0x08); //发送左键释放
sendKey.MyMouseUp(0);
sendKey.MyMouseUp(0);
sendKey.MyMouseUp(0);
private void KBCWait4IBEM() //等待键盘缓冲区为空
{
//int[] dwVal = new int[] { 0 };
int dwVal = 0;
do
{
//这句表示从&H64端口读取一个字节并把读出的数据放到变量dwVal中
//GetPortVal函数的用法是GetPortVal 端口号,存放读出数据的变量,读入的长度
bool flag = GetPortVal(0x64, out dwVal, 1);
}
while ((dwVal & 0x2) > 0);
}
//这个用来模拟按下键,参数vKeyCoad传入按键的虚拟码
public void MyMouseDown(int vKeyCoad)
{
int btScancode = 0;
btScancode = MapVirtualKey(vKeyCoad, 0);