【发布时间】:2015-12-26 06:47:07
【问题描述】:
本质上,我正在尝试制作一个屏幕捕获程序,用于捕获当前窗口下的像素值。 (我在 C# 中工作,在 Visual Studio 2015 中。)但是,由于各种原因,窗口本身需要是不透明的(用于过滤器等)。我怎样才能最好地做到这一点?
【问题讨论】:
-
我相信这是不可能的。
标签: c# winforms visual-studio screenshot
本质上,我正在尝试制作一个屏幕捕获程序,用于捕获当前窗口下的像素值。 (我在 C# 中工作,在 Visual Studio 2015 中。)但是,由于各种原因,窗口本身需要是不透明的(用于过滤器等)。我怎样才能最好地做到这一点?
【问题讨论】:
标签: c# winforms visual-studio screenshot
即使通过PrintWindow方法隐藏,也可以找到您下方的窗口并获取它的屏幕截图:PrintWindow(参见PInvoke.net)
【讨论】:
在 Winforms 中做起来非常简单。只需将表单的不透明度值设置为 99%。现在 Graphics.CopyFromScreen() 将不再看到您的窗口。
除非你下面的窗口也是一个分层窗口,否则出于同样的原因,CopyFromScreen() 也不会看到它。然后你必须将不透明度设置为 0,复制并将其设置回 0.99。非常快,可能足以满足您的需求。
【讨论】: