2010-06-07 23 views
2

我想創建一個桌面管理器,它可以獲取包括狀態和屏幕截圖在內的所有正在運行的應用程序的信息,以便在我的虛擬空間(可能是3D)中顯示和操作它們。它可以被認爲是Windows本身的另一個抽象層。在Windows Vista/7(使用DWM)中重定向應用程序的圖形輸出

由於許多原生Windows Vista/7功能(如Flip 3D和Live縮略圖)都能夠實時顯示每個窗口的活動,視頻一直在任務欄的縮略圖中播放,我認爲DWM允許應用程序將其輸出重定向到其他地方,或者某些特殊進程能夠收集其他應用程序的圖形輸出(可能只是子進程)。微軟是否發佈了一套公共API來做到這一點?如果不是,技術上可行嗎?如果我將範圍限制爲僅使用WPF的.NET應用程序,它會更容易嗎?

回答

1

您可以撥打DwmRegisterThumbnail,DWM會在窗口中繪製實時縮略圖。

我認爲沒有支持的方式來獲取這些數據並自己操縱它,但是有一些黑客在那裏,但我從來沒有用過它們。

+0

這適用於縮略圖。但仍然存在Flip3D(Win + Tab)或Switcher(http://insentient.net/)如何設法繪製窗口內容的問題 – 2010-10-03 03:57:44

+0

這有點晚,但如果任何人仍然感興趣 - MSDN關於DWM的文章縮略圖位於http://msdn.microsoft.com/en-us/library/aa969541(v=vs.85).aspx指出,這些縮略圖不能用於獲得類似Flip3D的效果。 順便提一下,我找到了一個DLL dwmredir.dll並查看了它的導出函數,我認爲dwmredir.dll部分負責將窗口繪圖重定向到內部緩衝區。 – AniDev 2011-06-21 00:24:17

相關問題