1
This function synthesizes keystrokes, stylus and mouse motions, and button clicks.
UINT SendInput(
UINT nInputs,
LPINPUT pInputs,
int cbSize
);
Parameters
nInputs
Specifies how many structures pInputs points to.
pInputs
Pointer to an array of INPUT structures. Each structure represents an event to be inserted into the keyboard or mouse input stream.
cbSize
Specifies the size of an INPUT structure. If cbSize is not the size of an INPUT structure, the function will fail.
Return Values
The number of events that the function inserted into the keyboard or mouse input stream indicates success. To get extended error information, call GetLastError.
2
This structure is used by the SendInput function to synthesize keystrokes, stylus and mouse motions, and button clicks.
typedef struct tagINPUT {
DWORD type;
union {
MOUSEINPUT mi;
KEYBDINPUT ki;
HARDWAREINPUT hi;
};
} INPUT, *PINPUT, FAR* LPINPUT;
Members
type
Indicates the type of device information this structure carries. It is one of the following values. Value Description
INPUT_HARDWARE The hi union member is valid.
INPUT_KEYBOARD The ki union member is valid.
INPUT_MOUSE The mi union member is valid.
mi
MOUSEINPUT structure that contains information about simulated mouse input.
ki
KEYBDINPUT structure that contains information about simulated keyboard input.
hi
HARDWAREINPUT structure that contains information about a simulated input device message
实例:
3
HWND hWnd=::FindWindow(_T("Baofeng_StormPlayer"),NULL);
if (hWnd!=NULL)
{
::ShowWindow(hWnd,SW_SHOWNORMAL);
::SetForegroundWindow(hWnd);
INPUT m_InPut[2]={0};
//键盘消息,将type置为INPUT_KEYBOARD;如果是鼠标消息,需将type置为INPUT_MOUSE
m_InPut[0].type=m_InPut[1].type/*=m_InPut[2].type=m_InPut[3].type=m_InPut[4].type=m_InPut[5].type*/=INPUT_KEYBOARD;
//将type置为键盘消息后,其INPUT结构中的ki结构是可以使用的,hi、mi结构不可使用
m_InPut[0].ki.wVk=VK_SPACE;//空格
m_InPut[1].ki.wVk=VK_SPACE;
m_InPut[1].ki.dwFlags=KEYEVENTF_KEYUP;
SendInput(sizeof(m_InPut)/sizeof(m_InPut[0]),m_InPut,sizeof(INPUT));
}