我无法理解下面的代码。我无法对它进行很好的解释。 我在代码段旁边留下了我有疑问的评论。
void LeftClick ( )
{
INPUT input = {0};
// left down
input.type = INPUT_MOUSE;
input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1,&input,sizeof(INPUT));
// left up
::ZeroMemory(&input,sizeof(INPUT)); // why zeroMemory? removing this code changes nothing that i can tell
input.type = INPUT_MOUSE; // why reset this variable? is it not already set?
input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1,&input,sizeof(INPUT));
}
获得了此代码
答案 0 :(得分:4)
ZeroMemory函数清除名为input
的结构中的所有数据 - 这就是代码必须重置input.type
变量的原因。
文档:http://msdn.microsoft.com/en-us/library/windows/desktop/aa366920(v=vs.85).aspx
我实际上看了一下我编写的一些旧代码,但我根本没有使用ZeroMemory宏。这是非常不必要的,因为设置的两个值都会重新设置。