INPUT iput[1];
memset(iput, 0, 1 * sizeof(INPUT));
iput[0].type = INPUT_KEYBOARD;
iput[0].ki.wVk = VK_ESCAPE;
SendInput(1, iput, sizeof(INPUT));
如果把MEMSET这句去掉就不能按下ESC键了,如果把INPUT定义成iput,不带数组的也
不行,请问这是为什么呀?这不把它定义成数组不也行么?为什么有MEMSET和没有差别
这么大呢?
由于INPUT结构没有初始化,iput[0].ki.dwFlags的值不为0,不能正常工作。
例如,如果KEYEVENTF_KEYUP位为1,表示放开按键
如果KEYEVENTF_SCANCODE 或者 KEYEVENTF_UNICODE 位为1,则忽略wVk.
没有memset,结构体内的成员(你没有赋值的字段)的值是随机的,所以结果不可以预料。和别的语言不同,C++不会初始化结构体的字段。