0 0

SendInput方法中控制鼠标移动的问题0

代码是这么写的:

    private void button1_Click(object sender, EventArgs e)
        {
      
                    System.Threading.Thread.Sleep(500);
                    MouseInput myMinput = new MouseInput();
                    myMinput.dx = 200;
                    myMinput.dy = 200;
                    myMinput.Mousedata = 0;
                    myMinput.dwFlag = MouseEvent_Move;
                    myMinput.time = 0;
                    Input[] myInput = new Input[1];
                    myInput[0] = new Input();
                    myInput[0].type = 0;
                    myInput[0].mi = myMinput;
                    UInt32 result = SendInput((uint)myInput.Length, myInput, Marshal.SizeOf(myInput[0].GetType()));
                    if (result == 0)
                    {
                        MessageBox.Show("fail");
                    }
               
            }

这边的myMinput.dwFlag = MouseEvent_Move;后运行代码一点反应都没有,也不报错。
但是把myMinput.dwFlag = MouseEvent_LeftDown|MouseEvent_LeftUp;以后测试点击事件是没有问题的。

问题补充:根据进一步情况的了解,应该是UIPI(用户界面特权隔离)的问题,但是具体要怎么设置还是不清楚,望不吝赐教

问题补充:通过再进一步的测试发现鼠标的移动效果是有的(虽然鼠标的图标还是在原地显示),但是我设置dx = 屏幕宽度,dy = 屏幕高度后,也就是让鼠标的位置移动到屏幕右下角后触发了WIN8下显示桌面的效果。因此移动的效果已经有了,但是鼠标的图标位置没有改变。请问这该怎么解决呢

问题补充:这个今天在机房的电脑上(XP)测试了下,没有问题,鼠标可以移动,所以从目前了解到的信息来看应该是操作系统的问题。
2014年3月22日 16:28
目前还没有答案

相关推荐

Global site tag (gtag.js) - Google Analytics