2016-09-12 15 views
0

내 응용 프로그램 아래 화면의 비트 맵을 캡처하고 싶습니다. 내 응용 프로그램이 최상위 창입니다. stackoverflow에 대한 게시물을 찾았습니다 : - How can I capture screen under my own window excluding my own windowDirectShow API를 사용하여 캡처 링하는 응용 프로그램을 제외한 데스크탑 비트 맵을 캡처하려면 어떻게해야합니까?

위의 게시물에 대한 마지막 답변을 따라 왔지만 캡처하는 동안 캡처 응용 프로그램이 계속 깜박입니다.

플리 킹이 발생하지 않고 DirectShow API를 사용하여 최상위 레벨 캡쳐 응용 프로그램 아래에서 화면 비트 맵을 캡처 할 수있는 솔루션이 있습니까? 캡처 한 비디오에는 캡처 응용 프로그램의 GUI 요소가 포함되어 있지 않을 것으로 예상됩니다.

답변

1

본질적으로 이전 질문 인 How can I omit capturing of a button/region using DirectShow APIs?과 중복됩니다. 새로운 세부 정보 및 링크 참조를 추가하여 연장 할 수 있습니다.

그럼에도 불구하고 DirectShow API는 모든 데스크톱 캡처 기능을 제공하지 않습니다. 그것의 CPushSourceDesktop Sample 사실은 가까운 일을 제공하고 있습니다 : 그것은 GDI API를 사용하여 얻은 데스크톱 이미지가 DirectShow를 사용하여 비디오로 스트리밍 될 수 있음을 보여줍니다. 즉, 어쨌든 DirectShow API를 사용하는 데스크톱 캡처가 없습니다.

GDI를 사용하면 응용 프로그램 UI 아래에있는 창에 강제로 창 다시 그리기가 필요합니다. 응용 프로그램을 숨겨서 깜박임으로써이 작업을 수행 할 수 있습니다. 다른 방법은 도우미 DC에 페인트하는 요청을 포함하며 모든 응용 프로그램에서 잘 작동하지 않으며 별도의 창에서 이미지 컴포지션을 수행해야합니다. 그런 다음 DirectShow를 사용하여 결과를 스트리밍 할 수 있습니다.