本文参考C++改写 https://blog.csdn.net/dpsying/article/details/20139651  (该文章的坐标理解的有误解,会导致功能无效)

SendMessage的移动鼠标里的坐标 是基于句柄内的 坐标,并不是屏幕坐标,任务栏宽度300 高度固定40,那么就应该从宽度0-300 坐标15之间 移动过去。

首先声明需要用到的 winapi 函数

 1         [DllImport("user32.dll", EntryPoint = "FindWindow")]
 2         private static extern int FindWindow(string lpszClass, string lpszWindow);
 3         [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
 4         private static extern int FindWindowEx(int hwndParent, int hwndChildAfter, string lpszClass, string lpszWindow);
 5 
 6         [DllImport("user32.dll", EntryPoint = "GetWindowRect")]
 7         private static extern int GetWindowRect(int hwnd, ref System.Drawing.Rectangle lpRect);
 8         [DllImport("user32.dll", EntryPoint = "SendMessage")]
 9         private static extern int SendMessage(int hwnd, int wMsg, int wParam, int lParam);
10 
11         private static readonly int WM_MOUSEMOVE = 512;
winapi

相关文章: