问题描述
用SendMessage实现,在当前鼠标坐标的X+10Y+10的位置实现单击比如鼠标坐标(102,205)在(112,215)的位置用消息SendMessageWM_CLICK实现单击效果请具体些解答下谢谢
解决方案
解决方案二:
用GetCursorPos的到鼠标坐标,用SendMessage发消息。
解决方案三:
用GetCursorPos得到鼠标坐标,用SendMessage发消息。
解决方案四:
///<summary>///鼠标左键点击///</summary>privatevoidClickMouse(){mouse_event(LeftDown,0,0,0,0);Thread.Sleep(200);mouse_event(LeftUp,0,0,0,0);}[DllImport("user32.dll")]publicstaticexternboolSetCursorPos(intX,intY);[DllImport("user32.dll")]privatestaticexternintmouse_event(intdwFlags,intdx,intdy,intcButtons,intdwExtraInfo);
GetCursorPos得到的坐标是相对屏幕的。而不是对应程序的。sendmessage对应的是程序。所以还是用这个比较好。
解决方案五:
引用3楼wawd74520的回复:
///<summary>///鼠标左键点击///</summary>privatevoidClickMouse(){mouse_event(LeftDown,0,0,0,0);Thread.Sleep(200);mouse_event(LeftUp,0,0,0,0);}[DllImport("user32.dll")]publicstaticexternboolSetCursorPos(intX,intY);[DllImport("user32.dll")]privatestaticexternintmouse_event(intdwFlags,intdx,intdy,intcButtons,intdwExtraInfo);GetCursorPos得到的坐标是相对屏幕的。而不是对应程序的。sendmessage对应的是程序。所以还是用这个比较好。
我都不会用的。。只是用到下,大哥代码写全呗?
解决方案六:
//鼠标点击坐标112,215SetCursorPos(112,215);ClickMouse();
解决方案七:
引用5楼wawd74520的回复:
//鼠标点击坐标112,215SetCursorPos(112,215);ClickMouse();
获取怎么获取的?先获取当前坐标然后移动到相对位置点击GetCursorPos怎么用?
解决方案八:
你都知道鼠标要点哪里。你不知道坐标位置么。
解决方案:
引用7楼wawd74520的回复:
你都知道鼠标要点哪里。你不知道坐标位置么。
SendMessage(hwnd,WM_CLICK,IntPtr.Zero,null);我是点这个点完会在实体光标的位置出现一个菜单可这个菜单没办法获取句柄只能靠移动点击位置来实现对这个菜单的点击了。。这是那个弹出菜单的信息我想不出办法动态捕获它获取句柄
解决方案:
引用7楼wawd74520的回复:
你都知道鼠标要点哪里。你不知道坐标位置么。
大哥还有个问题请教下就是SendMessage(hwnd,WM_CLICK,IntPtr.Zero,null);我这个点击完后菜单出来了可是程序会暂停无响应不会执行下面的代码直到手动点击完这个菜单才会继续执行下面的代码我该怎么解决?不执行下面的代码就算可以控制这个菜单也没法执行啊
解决方案:
那就用postmessage。或者开线程去sendmessage
解决方案:
引用10楼wawd74520的回复:
那就用postmessage。或者开线程去sendmessage
开线程试了没用
解决方案:
引用10楼wawd74520的回复:
那就用postmessage。或者开线程去sendmessage
额有用了我之前是开线程执行下面的代码了sendmessage用的主线程可是上面那问题怎么弄啊麻烦下大哥
解决方案:
用winapi获取窗体的坐标。然后移动鼠标去点。