使用WinIO 模拟鼠标输入

直接上代码

        //' 左键按下(MouseFun=9)。MyMouseX、MyMouseY、MyMouseZ 为0
        //' 右键按下(MouseFun=10)。MyMouseX、MyMouseY、MyMouseZ 为0
        //' 中键按下(MouseFun=12)。MyMouseX、MyMouseY、MyMouseZ 为0
        //' 任意键放开(MouseFun=8)。MyMouseX、MyMouseY、MyMouseZ 为0
        //' ------------------------------------
        //' 鼠标上移(MouseFun=8)。MyMouseY为移动距离,最大为255,最小为1。MyMouseX、MyMouseZ 为0
        //' 鼠标下移(MouseFun=40)。MyMouseY为移动距离,最大为1,最小为255。MyMouseX、MyMouseZ 为0
        //' 鼠标左移(MouseFun=24)。MyMouseX为移动距离,最大为1,最小为255。MyMouseY、MyMouseZ 为0
        //' 鼠标右移(MouseFun=8)。MyMouseX为移动距离,最大为255,最小为1。MyMouseY、MyMouseZ 为0
        public static void MyMouseKey(int MouseFun, int MyMouseX, int MyMouseY, int MyMouseZ)
        {
            KBCWait4IBE();                               //'等待缓冲区为空
            SetPortVal(KBC_KEY_CMD, (IntPtr)211, 1);             //'发送鼠标写入命令
            KBCWait4IBE();
            SetPortVal(KBC_KEY_DATA, (IntPtr)MouseFun, 1);         //'发送鼠标动作命令
            KBCWait4IBE();
            SetPortVal(KBC_KEY_CMD, (IntPtr)211, 1);             // '发送鼠标写入命令
            KBCWait4IBE();
            SetPortVal(KBC_KEY_DATA, (IntPtr)MyMouseX, 1);         //  '发送鼠标动作命令
            KBCWait4IBE();
            SetPortVal(KBC_KEY_CMD, (IntPtr)211, 1);             // '发送鼠标写入命令
            KBCWait4IBE();
            SetPortVal(KBC_KEY_DATA, (IntPtr)MyMouseY, 1);         //  '发送鼠标动作命令
            KBCWait4IBE();
            SetPortVal(KBC_KEY_CMD, (IntPtr)211, 1);             // '发送鼠标写入命令
            KBCWait4IBE();
            SetPortVal(KBC_KEY_DATA, (IntPtr)MyMouseZ, 1);         //  '发送鼠标动作命令
        }

使用方法

        public void LeftClick()
        {
            Console.WriteLine("mouse down");
            WinIO64.MyMouseKey(9, 0, 0, 0);
            System.Threading.Thread.Sleep(50);
            WinIO64.MyMouseKey(8, 0, 0, 0);
        }

你可能感兴趣的:(C#,c#)