通过程序模拟鼠标按下

前几天在坛子里看到大概有类似的要求,所以整理一份正在CE6.0下使用的源代码,供大家参考。


#define SCREEN_WIDTH	800   // 屏幕宽度
#define SCREEN_HEIGHT   480   // 屏幕高度
static void EmuMouseEvent(UINT uiMsg, int iX, int iY)
{
	int iCmd = 0;

	switch(uiMsg)
	{
	case WM_LBUTTONDOWN:
		iCmd = MOUSEEVENTF_LEFTDOWN;
		break;
	case WM_LBUTTONUP:
		iCmd = MOUSEEVENTF_LEFTUP;
		break;
	case WM_MOUSEMOVE:
		iCmd = MOUSEEVENTF_MOVE;
		break;
	default:
		return;
	}

	mouse_event(MOUSEEVENTF_ABSOLUTE | iCmd,iX * 0xFFFF / SCREEN_WIDTH,iY * 0xFFFF / SCREEN_HEIGHT,0,0);
}

调用方法:

 EmuMouseEvent(WM_LBUTTONDOWN, 626, 26);
 EmuMouseEvent(WM_LBUTTONUP, 626, 26);

此时,哪个窗口在最前面,就会接收到鼠标消息。如果(626,26)下是按键,则按键事件会被响应。

你可能感兴趣的:(通过程序模拟鼠标按下)