SendInput The SendInput function synthesizes keystrokes, mouse motions, and button clicks.UINT SendInput( UINT nInputs, // count of input events LPINPUT pInputs, // array of input events int cbSize // size of structure ); Parameters nInputs [in] Specifies the number of structures in the pInputs array. pInputs [in] Pointer to an array of INPUT structures. Each structure represents an event to be inserted into the keyboard or mouse input stream. cbSize [in] Specifies the size, in bytes, of an INPUT structure. If cbSize is not the size of an INPUT structure, the function will fail. Return Values The function returns the number of events that it successfully inserted into the keyboard or mouse input stream. If the function returns zero, the input was already blocked by another thread.To get extended error information, call GetLastError. Res The SendInput function inserts the events in the INPUT structures serially into the keyboard or mouse input stream. These events aren't interspersed with other keyboard or mouse input events inserted either by the user (with the keyboard or mouse) or by calls to keybd_event, mouse_event, or other calls to SendInput.This function does not reset the keyboard's current state. Any keys that are already pressed when the function is called might interfere with the events that this function generates. To avoid this problem, check the keyboard's state with the GetAsyncKeyState function and correct as necessary.Requirements Windows NT/2000: Requires Windows NT 4.0 SP3 or later. Windows 95/98: Requires Windows 98. Header: Declared in Winuser.h; include Windows.h. Library: Use User32.lib.INPUT The INPUT structure is used by SendInput to store information for synthesizing input events such as keystrokes, mouse movement, and mouse clicks.typedef struct tagINPUT { DWORD type; union { MOUSEINPUT mi; KEYBDINPUT ki; HARDWAREINPUT hi; }; } INPUT, *PINPUT; Members type Specifies the type of the input event. This member can be one of the following values. Value Meaning INPUT_MOUSE The event is a mouse event. Use the mi structure of the union. INPUT_KEYBOARD The event is a keyboard event. Use the ki structure of the union. INPUT_HARDWARE Windows 95/98: The event is from input hardware other than a keyboard or mouse. Use the hi structure of the union. mi A MOUSEINPUT structure that contains information about a simulated mouse event. ki A KEYBDINPUT structure that contains information about a simulated keyboard event. hi Windows 95/98: A HARDWAREINPUT structure that contains information about a simulated event from input hardware other than a keyboard or mouse. Res This structure contains information identical to that used in the parameter list of the keybd_event or mouse_event function.Windows 2000: INPUT_KEYBOARD supports nonkeyboard input methods, such as handwriting recognition or voice recognition, as if it were text input by using the KEYEVENTF_UNICODE flag. For more information, see the res section of KEYBDINPUT.Requirements Windows NT/2000: Requires Windows NT 4.0 SP3 or later. Windows 95/98: Requires Windows 98. Header: Declared in Winuser.h; include Windows.h.以下来自MSDN。 调用SendInput就可以。鼠标先按下、再释放就是click。
The SendInput function synthesizes keystrokes, mouse motions, and button clicks.UINT SendInput(
UINT nInputs, // count of input events
LPINPUT pInputs, // array of input events
int cbSize // size of structure
);
Parameters
nInputs
[in] Specifies the number of structures in the pInputs array.
pInputs
[in] Pointer to an array of INPUT structures. Each structure represents an event to be inserted into the keyboard or mouse input stream.
cbSize
[in] Specifies the size, in bytes, of an INPUT structure. If cbSize is not the size of an INPUT structure, the function will fail.
Return Values
The function returns the number of events that it successfully inserted into the keyboard or mouse input stream. If the function returns zero, the input was already blocked by another thread.To get extended error information, call GetLastError. Res
The SendInput function inserts the events in the INPUT structures serially into the keyboard or mouse input stream. These events aren't interspersed with other keyboard or mouse input events inserted either by the user (with the keyboard or mouse) or by calls to keybd_event, mouse_event, or other calls to SendInput.This function does not reset the keyboard's current state. Any keys that are already pressed when the function is called might interfere with the events that this function generates. To avoid this problem, check the keyboard's state with the GetAsyncKeyState function and correct as necessary.Requirements
Windows NT/2000: Requires Windows NT 4.0 SP3 or later.
Windows 95/98: Requires Windows 98.
Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.INPUT
The INPUT structure is used by SendInput to store information for synthesizing input events such as keystrokes, mouse movement, and mouse clicks.typedef struct tagINPUT {
DWORD type;
union {
MOUSEINPUT mi;
KEYBDINPUT ki;
HARDWAREINPUT hi;
};
} INPUT, *PINPUT;
Members
type
Specifies the type of the input event. This member can be one of the following values. Value Meaning
INPUT_MOUSE The event is a mouse event. Use the mi structure of the union.
INPUT_KEYBOARD The event is a keyboard event. Use the ki structure of the union.
INPUT_HARDWARE Windows 95/98: The event is from input hardware other than a keyboard or mouse. Use the hi structure of the union.
mi
A MOUSEINPUT structure that contains information about a simulated mouse event.
ki
A KEYBDINPUT structure that contains information about a simulated keyboard event.
hi
Windows 95/98: A HARDWAREINPUT structure that contains information about a simulated event from input hardware other than a keyboard or mouse.
Res
This structure contains information identical to that used in the parameter list of the keybd_event or mouse_event function.Windows 2000: INPUT_KEYBOARD supports nonkeyboard input methods, such as handwriting recognition or voice recognition, as if it were text input by using the KEYEVENTF_UNICODE flag. For more information, see the res section of KEYBDINPUT.Requirements
Windows NT/2000: Requires Windows NT 4.0 SP3 or later.
Windows 95/98: Requires Windows 98.
Header: Declared in Winuser.h; include Windows.h.以下来自MSDN。
调用SendInput就可以。鼠标先按下、再释放就是click。
yPos = GET_Y_LPARAM(lParam);