2010-06-07 3 views
2

내 가상 공간 (아마 3D)에서 상태와 스크린 샷을 표시하고 조작하기 위해 실행중인 모든 응용 프로그램의 정보를 사용하는 바탕 화면 관리자를 만들고 싶습니다. 그것은 윈도우 그 자체의 추상화의 또 다른 층으로 간주 될 수 있습니다.Windows Vista/7 (DWM 사용)에서 응용 프로그램의 그래픽 출력 리디렉션

Flip 3D 및 라이브 미리보기 같은 많은 기본 Windows Vista/7 기능은 각 창 작업을 실시간으로 표시 할 수 있습니다. 비디오는 작업 표시 줄의 축소판에서 계속 재생됩니다. DWM을 사용하면 응용 프로그램이 다른 곳으로 출력을 리디렉션 할 수 있거나 일부 특수 프로세스가 다른 응용 프로그램의 그래픽 출력 (자식 프로세스 만 가능)을 수집 할 수 있다고 생각합니다. Microsoft는 이렇게 공개 API 집합을 출시 했습니까? 그렇지 않은 경우 기술적으로 가능합니까? WPF를 사용하여 .NET 응용 프로그램에만 범위를 한정하면 더 쉽습니다.

답변

1

DwmRegisterThumbnail으로 전화를 걸면 DWM이 라이브 축소판 그림을 윈도우 내부에 그립니다.

데이터를 가져 와서 직접 조작 할 수있는 방법이 없다고 생각합니다. 그러나 거기에는 해킹이 있지만 직접 사용하지는 않았습니다.

+0

미리보기 이미지가 잘 작동합니다. 그러나 Flip3D (Win + Tab) 또는 Switcher (http://insentient.net/)가 창 내용을 그릴 수있는 방법에 대해 여전히 의문점이 있습니다. –

+0

조금 늦었습니다. 그러나 여전히 관심이있는 사람을 위해 - DWM에 대한 MSDN 기사 http://msdn.microsoft.com/en-us/library/aa969541(v=vs.85).aspx의 축소판 그림은 이러한 축소판을 Flip3D와 같은 효과를 얻는 데 사용할 수 없다고 말합니다. 덧붙여 말하자면, DLL dwmredir.dll을 발견하고 내 보낸 함수를 살펴 보았습니다. 그리고 dwmredir.dll이 윈도우 드로잉을 내부 버퍼로 리디렉션하는 부분에 책임이 있다고 생각합니다. – AniDev