【发布时间】:2011-08-13 04:56:41
【问题描述】:
这可能吗。我有三 (3) 个窗口:
- Window1 - 未激活
- Window2 - 未激活
- Window3 - 活动
如果我截取桌面的屏幕截图,我希望 Window3 安静地隐藏。如果用户使用Window3,则程序不得以任何方式隐藏窗口,例如最小化它或任何东西。简而言之,我需要一种从桌面屏幕截图中隐藏特定窗口的不显眼方式。
【问题讨论】:
标签: c# windows hide screenshot
这可能吗。我有三 (3) 个窗口:
如果我截取桌面的屏幕截图,我希望 Window3 安静地隐藏。如果用户使用Window3,则程序不得以任何方式隐藏窗口,例如最小化它或任何东西。简而言之,我需要一种从桌面屏幕截图中隐藏特定窗口的不显眼方式。
【问题讨论】:
标签: c# windows hide screenshot
如果没有大量工作,这是不可能的。打印屏幕功能只是将桌面 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
当然,假设您可以挂钩打印屏幕功能。我怀疑这是可能的,虽然我从未尝试过。
【讨论】: