通过程序模拟鼠标按下
前几天在坛子里看到大概有类似的要求,所以整理一份正在CE6.0下使用的源代码,供大家参考。
1 #define SCREEN_WIDTH 800 // 屏幕宽度 2 #define SCREEN_HEIGHT 480 // 屏幕高度 3 static void EmuMouseEvent(UINT uiMsg, int iX, int iY) 4 { 5 int iCmd = 0; 6 7 switch(uiMsg) 8 { 9 case WM_LBUTTONDOWN: 10 iCmd = MOUSEEVENTF_LEFTDOWN; 11 break; 12 case WM_LBUTTONUP: 13 iCmd = MOUSEEVENTF_LEFTUP; 14 break; 15 case WM_MOUSEMOVE: 16 iCmd = MOUSEEVENTF_MOVE; 17 break; 18 default: 19 return; 20 } 21 22 mouse_event(MOUSEEVENTF_ABSOLUTE | iCmd,iX * 0xFFFF / SCREEN_WIDTH,iY * 0xFFFF / SCREEN_HEIGHT,0,0); 23 }
调用方法:
1 EmuMouseEvent(WM_LBUTTONDOWN, 626, 26); 2 EmuMouseEvent(WM_LBUTTONUP, 626, 26);
此时,哪个窗口在最前面,就会接收到鼠标消息。如果(626,26)下是按键,则按键事件会被响应。