【问题标题】:Take a screen capture of an invisible window截屏一个不可见的窗口
【发布时间】:2011-08-30 08:44:18
【问题描述】:

是否可以(在 Windows 7 上)截取不可见窗口的屏幕截图(即没有 WM_VISIBLE 标志的窗口?)最好该方法是高性能的,因此我可以每秒截取数百个这样的屏幕截图。

【问题讨论】:

  • 隐形窗口是什么样的?
  • @Bo 正常应用程序已启动,然后我从它们的窗口中删除 WM_VISIBLE 标志,以便它们不再呈现到屏幕上。不过,我仍然想在其他地方渲染它们。
  • 目标是启动一个应用程序,但不是将其渲染到屏幕上,而是将其隐藏并可以通过截屏自己渲染它。
  • @IsaacWaller :如果一个窗口不应该是可见的,谁能说它甚至会费心去画什么?
  • @ildjarn:该应用程序是一个普通的应用程序(如Photoshop,Chrome等),唯一的区别是它启动后,我隐藏了窗口,使其不会呈现到屏幕上。

标签: c++ windows


【解决方案1】:

也许你会在这里找到一些有用的信息: Copying content from a hidden or clipped window in XP?

【讨论】:

  • PrintWindow 并不总是在 Windows 7 上工作。我相信这是由于 Vista 及更高版本中新的窗口渲染系统。
【解决方案2】:

编写良好的 Windows 程序会在绘制自己之前检查窗口是否可见。

您是在告诉这些窗口不要渲染自己,然后期望它们自己渲染。那根本行不通。

【讨论】:

  • 有什么办法可以让窗口误以为它已经被渲染了?
  • 也许您可以将窗口设置为可见但将其移出屏幕,然后它仍然会呈现? (无论如何,Windows 7)
  • @roger 屏幕外窗口不呈现
  • 你在 Windows 7 中测试过吗?似乎在这里对我有用...除非您的应用程序足够聪明,可以识别出它不在窗口中而不是绘制,否则您就完成了。
  • @roger 可能适用于 aero thumb preview 但不太可能在 xp 上使用
猜你喜欢
  • 2012-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-12
相关资源
最近更新 更多