SendInput 参数错误

Len*_*ria 1 c++ windows winapi sendinput

我想改进我的SendInput()功能,但遇到了错误。

错误_无效_参数

87 (0x57)

The parameter is incorrect.
Run Code Online (Sandbox Code Playgroud)

https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx

我有点困惑哪个参数不应该正确。

如果我忘记了什么,请随时询问。

INPUT in[6] = {0};

//Press Enter Key
in[0].type = INPUT_KEYBOARD;
in[0].ki.wScan = 0;
in[0].ki.dwFlags = 0;
in[0].ki.time = 0;
in[0].ki.dwExtraInfo = 0;
in[0].ki.wVk = VK_RETURN;

//release enter key
in[1] = in[0];
in[1].ki.dwFlags = KEYEVENTF_KEYUP;

//Hold Shift key and press key 7
in[2].type = INPUT_KEYBOARD;
in[2].ki.wScan = 0;
in[2].ki.dwFlags = 0;
in[2].ki.time = 0;
in[2].ki.dwExtraInfo = 0;
in[2].ki.wVk = VK_SHIFT;

in[3].type = INPUT_KEYBOARD;
in[3].ki.wScan = 0;
in[3].ki.dwFlags = 0;
in[3].ki.time = 0;
in[3].ki.dwExtraInfo = 0;
in[3].ki.wVk = 0x37;

//release key 7
in[4] = in[3];
in[4].ki.dwFlags = KEYEVENTF_KEYUP;

//release key shift
in[5] = in[2];
in[5].ki.dwFlags = KEYEVENTF_KEYUP;

if (SendInput(6, in, sizeof(in)) == 0)
{
std::cout << "Uppps some error in SendInput: " << GetLastError() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

Len*_*ria 6

INPUT 结构的大小(以字节为单位)。如果 cbSize 不是 INPUT 结构的大小,则该函数失败。

SendInput(6, in, sizeof(INPUT));
Run Code Online (Sandbox Code Playgroud)

哎呀...