这个人成功做到了你想要的事情:http://www.codeproject.com/Articles/20651/Capturing-Minimized-Window-A-Kid-s-Trick 我知道这个问题很旧了,但对某些人仍然有价值。
我非常确定这是不可能的,至少对于像您这样的外部应用程序而言是如此。当应用程序窗口被最小化时,窗口无法(也不会)接收WM_PAINT消息,这意味着在窗口最小化时要求其重新绘制自己(或者“拍照”)是不可能的。这是Windows API的限制(或规则)。任务栏通过显示缓存图像(即DWM在窗口最小化之前拍摄的最后一个快照)“绕过了这个问题”,因此实际上并没有获取窗口的当前图片。您可以通过运行定期更新自身的应用程序,然后将其最小化来测试此功能-您将看到预览图像直到恢复才会更新。您唯一可以解决此问题的方法是执行任务栏所做的操作-定期拍摄您想要的窗口的图像,并在其最小化时使用缓存的图像。当然,这意味着您的应用程序必须事先跟踪目标窗口一段时间(如果您首次想要拍摄窗口的快照是在其最小化时,则显然无法正常工作)。