我正在制作一个程序,它将单击键盘的 printscreen 键。我正在使用的代码如下:
INPUT myInput;
myInput.type = INPUT_KEYBOARD;
KEYBDINPUT keyboardInput;
keyboardInput.wScan = 0;
keyboardInput.dwFlags = 0;
keyboardInput.time = 0;
keyboardInput.dwExtraInfo = 0;
keyboardInput.wVk = VK_SNAPSHOT;
myInput.ki = keyboardInput;
SendInput(1, &myInput, sizeof(INPUT));//pressing the printscreen key
keyboardInput.dwFlags = KEYEVENTF_KEYUP;
myInput.ki = keyboardInput;
SendInput(1, &myInput, sizeof(INPUT));//releasing the printscreen key
由于某种原因,代码无法正常工作。如果我去绘画并尝试从剪贴板绘画,它只会超过我在使用我的程序之前所做的任何打印屏幕。此外,我的键盘不需要我在打印屏幕上按“alt”即可工作..
我曾尝试将 Alt 键的按下包括在 printscreen 键的按下之前,以及 Alt 键的释放以及 printscreen 键的释放,而我得到的不同之处在于,当我尝试将其通过时油漆,我画了某种全黑屏...这只是我做的一个测试,看看它是否有所作为,但我的实际键盘只需要点击打印屏幕按钮就可以截取屏幕截图。
关于我做错了什么的任何想法?
编辑:只是为了让你们知道,该程序实际上可以编译。我还添加了将剪贴板文件保存到目录的其他代码,如果我手动点击打印屏幕按钮,我会正确保存文件......但是如果我继续循环保存到目录的代码,同样的图片手动获取的屏幕截图的出现......所以这就是我确定点击打印屏幕按钮有问题的方法。