C# 截图程序无法“看到”Adobe AIR 程序
Posted
技术标签:
【中文标题】C# 截图程序无法“看到”Adobe AIR 程序【英文标题】:C# screenshot program cannot "see" Adobe AIR programs 【发布时间】:2009-11-05 19:42:02 【问题描述】:你好, 我用 C# 编写了一个程序来截取屏幕上的矩形区域。但是我似乎无法从 Adobe AIR 应用程序中捕获信息。相反,下面的应用程序是我最终得到的。
动作的核心围绕 System.Drawing.Graphics.CopyFromScreen - 传递相当于左上角的点和大小并抓住该区域。到目前为止,我对其他任何事情都没有任何问题,包括网页中的 Flash 电影。
我真的不知道去哪里找,我的谷歌搜索让我相信我是唯一遇到过这种情况的人。 :O
有任何想法吗?
【问题讨论】:
【参考方案1】:使用打印屏幕键在 Windows 剪贴板上截取 Adobe AIR 应用程序的屏幕截图。将屏幕截图粘贴到 MS Paint 中。如果您在屏幕截图中没有看到 Adobe AIR,那么这是一个加速问题 - Adobe AIR 使用硬件加速表面(即 DirectX 或 OpenGL)进行所有渲染,这意味着它不存在于软件屏幕缓冲区中(有一些方法可以在其他应用程序中截取加速表面的屏幕截图,但这非常专业)。
【讨论】:
非常好的观点。我们在我们的 AIR 应用程序上使用某些设置(这些都是内部生成的)。我会调查这些选项是否会将其推向加速表面。 到目前为止我的发现是一致的 - 任何具有自定义 chrome 的 AIR 应用程序都无法正常筛选,但任何使用标准 windows chrome 的应用程序都可以以通常的方式捕获。再次感谢! - 这给了我一个开始寻找的地方【参考方案2】:这对你没有帮助,但我只是拼凑了一个快速的 WinForms 应用程序来尝试它,我能够使用 CopyFromScreen
函数截取 TweetDeck 的屏幕截图。
【讨论】:
我只试用了我们公司内部构建的应用程序。我会调查外部的。谢谢。 是的,我可以截屏 tweetdeck。我们使用无铬 AIR 窗口。我会看看这是否与它有关以上是关于C# 截图程序无法“看到”Adobe AIR 程序的主要内容,如果未能解决你的问题,请参考以下文章