首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SendInput错误参数

SendInput错误参数
EN

Stack Overflow用户
提问于 2018-06-15 11:29:57
回答 2查看 398关注 0票数 1

我想改进我的SendInput()函数,但遇到了一个错误。

ERROR_INVALID_PARAMETER 87 (0x57)参数不正确。 https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx

我有点搞不懂哪个参数不应该是正确的。

如果我忘记了什么,请毫不犹豫地问。

代码语言:javascript
复制
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;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-15 11:44:51

输入结构的大小,以字节为单位。如果cbSize不是输入结构的大小,则函数将失败。

代码语言:javascript
复制
SendInput(6, in, sizeof(INPUT));

屋檐..。

票数 6
EN

Stack Overflow用户

发布于 2018-06-15 11:47:27

文档cbSize

输入结构的大小,以字节为单位。如果cbSize不是输入结构的大小,则函数将失败。

您正在传递sizeof(in),即整个数组的大小。相反,传递sizeof(INPUT)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50874720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档