APIs:
SendInput API ( it can take place of keybd_event, and mouse_event)
http://msdn.microsoft.com/en-us/library/ms961447.aspx
Mouse Input:
http://msdn.microsoft.com/en-us/library/ms931454.aspx
keybd_event API:
http://msdn.microsoft.com/en-us/library/aa453245.aspx
Virtual Key code:
http://msdn.microsoft.com/en-us/library/ms927178.aspx
Reference web page:
1. http://www.armce.com/bbs/archiver/tid-195.html
2. http://www.cnblogs.com/iVincentFeng/archive/2010/04/20/KeyboardInputSimulation_SendMessage_keybd_event_PostKeybdMessage.html
3. http://www.cnblogs.com/edobnet/archive/2004/06/09/14334.aspx
4. http://topic.csdn.net/t/20040626/16/3125079.html
Samples:
// work in Windows Mobile/Windows/CE
void MouseClickAt(int g_x,int g_y)
{
tagINPUT Inputs[2];
int dx = g_x * 65535 / 800; //把实际坐标换算成为绝对坐标,0-65535
int dy = g_y * 65535 / 600;
Inputs[0].type = INPUT_MOUSE;
Inputs[0].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN;
Inputs[0].mi.dx = dx;
Inputs[0].mi.dy = dy;
Inputs[0].mi.mouseData = 0;
Inputs[0].mi.time = 0;
Inputs[1].type = INPUT_MOUSE;
Inputs[1].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP;
Inputs[1].mi.dx = dx;
Inputs[1].mi.dy = dy;
Inputs[1].mi.mouseData = 0;
Inputs[1].mi.time = 0;
SendInput(2,Inputs,sizeof(tagINPUT));
}
void MouseClickAt2(int g_x,int g_y)
// g_x, g_y are in screen coordinate
{
//直接执行设定
SetCursorPos(g_x, g_y);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOW, 0, 0, 0, 0);
}
(xgzhang ) |