作为普通的Windows用户,我很少区分窗口在后台和最小化 - 效果通常是相同的:我没有看到它。
但事实上,最小化的窗口确实具有零维度的客户端矩形。因此,无法截取它们的截图。我的应用程序需要采用窗口截图,即使它被最小化(实际上,特别是当它被最小化时)。我试图在后台自动化某些东西,以便我可以在此期间做其他事情。
我的问题是:我可以恢复窗口(让用户只需点击它就可见)但是立即将它放在后台并且不要失去当前使用窗口的焦点吗?
调用ShowWindow(hwnd, SW_RESTORE)
会将窗口置于前台并中断我的活动。
//This equals to the ShowWindow call above and put's the window in focus
test.restore();
try {
screenshot = test.screenshot();
}
catch(APIError e) {
System.err.println("No screenshot. Error: "+e);
}