2011-04-26 50 views
0

这是可能的。我有三个(3)窗口:有条件隐藏桌面屏幕的特定窗口

  • 窗口1 - 不活跃
  • 窗口2 - 不活跃
  • Window3 - 积极

如果我把桌面的截图我想Window3是安静地隐藏着。如果用户使用Window3,程序不得以任何方式隐藏窗口,例如最小化窗口或任何其他窗口。总之,我需要从桌面屏幕截图隐藏特定窗口的不显眼的方式。

回答

0

如果没有相当多的工作,这是不可能的。打印屏幕功能只是将桌面DC的内容复制到图像并将其放置在键盘上。它实际上不会将整个桌面重新渲染成新的DC。所以没有办法可以悄悄地删除一个特定的窗口。

我想你可以勾住打印屏幕按钮(或功能,不管它是什么),并允许它在剪贴板上创建图像。然后,您的挂钩可以从桌面读取问题窗口的位置,并清除剪贴板上位图的该区域。

你钩这样做:

call the normal print screen function 
load image from clipboard 
get location and size of Window3 from desktop 
fill that rectangle in the image with black (or whatever) 
put the modified image back on the clipboard 

假设,当然,你可以挂钩的打印屏幕功能。我怀疑这是可能的,尽管我从来没有尝试过。

+0

想到的不过是黑色的部分。我不想要一个黑色的矩形,而是一个完整的图片 – 2011-04-26 16:57:21

+0

@Aivan:你想展示什么是“背后”Window3?我想你会发现你所要求的是非常困难的,如果可能的话。 – 2011-04-26 17:28:16

+0

以及我已经想到了一个解决方案,但即时通讯寻找其他更简单的解决方案。这是我的要求。获取每个窗口及其位置的截图。获取任务栏的屏幕截图。获取桌面的屏幕截图。然后将它们组合成一张照片。排除不必要的窗口。 – 2011-04-26 22:07:23