在Windows下,使用C++拍摄正在运行的应用程序的屏幕截图,最简单的方法是什么?
在Windows下,使用C++拍摄正在运行的应用程序的屏幕截图,最简单的方法是什么?
GetDC(NULL)
+ BitBlt()
为了捕获半透明/alpha/分层窗口,您必须向BitBlt
传递CAPTUREBLT
标志,如果这样做,则光标会闪烁,请阅读此 Technet 文章以找出原因。
在 NT6+ 上,您可能可以使用放大 API来实现您想要的效果。
keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_SILENT, 0);
桌面是一种与用户交互的“虚拟”设备。因此,它潜在地包含与隐私相关的信息。我建议,在可执行文件尝试截屏时,操作系统应添加安全检查/警告提示,除非最终用户明确表示知道正在发生什么。