导航

模拟鼠标事件

Posted on 2006-12-14 16:14  Phono  阅读(698)  评论(0编辑  收藏  举报
看见旁边的同事在测试,点一百次那种。。。想起以前好像做过鼠标事件的模拟,结果什么都没留下来,结果为了显示一下就答应帮他做,结果做了半天才做出来,为了防止以后再忘,记一下。
首先引用:
        [DllImport("user32.dll")]
     private static extern int mouse_event(int dwFlags,int dx,int dy,int cButtons,int dwExtraInfo);
        const int MOUSEEVENTF_MOVE = 0x0001;
        const int MOUSEEVENTF_LEFTDOWN = 0X0002;
        const int MOUSEEVENTF_LEFTUP = 0X0004;
        const int MOUSEEVENTF_RIGHTDOWN = 0X0008;
        const int MOUSEEVENTF_RIGHTUP = 0X0010;
        const int MOUSEEVENTF_MIDDLEDOWN = 0X0020;
        const int MOUSEEVENTF_MIDDLEUP = 0X0040;

最简单的是移动事件,最好配合个延时,效果比较好,也方便做测试
           mouse_event(MOUSEEVENTF_MOVE, 150, 5, 0, 0);
           System.Threading.Thread.Sleep(100);
鼠标点击事件的处理是在按钮送开时被调用的,千万要配对用,这次就吃了这亏了。
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
最后别忘了在带码头的地方添加引用
            using System.Runtime.InteropServices;
还可以做个自动关机啊,格式化硬盘什么的。。像写脚本一样,看大家的想象了,呵呵