日期:2014-05-19  浏览次数:20794 次

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);