2010-04-09 10 views
6

나는 스크린 샷을 자동으로 찍어야하는 응용 프로그램을 작성 중입니다 (PrintScreen 버튼을 누르는 것과 같습니다). 제발이 일을하는 법을 제안 해주세요. 원시 24 비트 BMP 이미지로 충분합니다.스크린 샷을 가져 오는 Win32 API는 무엇입니까?

참고 사항 : 내 앱은 C 언어이므로 내 코드에서 호출 할 수있는 모든 Win32 API가 필요합니다.

(때로는 스크린 샷을 찍는 데 사용되는 codeproject의 예제 코드가 있지만 화면 캡처를 할 때 마우스 포인터 사용자가 깜박 거립니다. 여러 번 찍으면이 것이 사용자에게 자극적이되므로 마우스 포인터가 깜박하지 않으려는) 아마

+1

Google에서 winapi 스크린 샷을 검색했을 때 무엇을 발견 했습니까? http://www.google.com/search?q=winapi+screenshot –

+1

고마워, 나는 전에 그걸 시도하지 않았 음에 틀림 없어. 죄송합니다. 정말 도움이됩니다. ==> http://groups.google.com/group/win32-programming/browse_thread/thread/55c030edbaeaf026 – Microkernel

답변

11

GetDC(NULL)가 + 반투명/알파/계층 창을 캡처하려면 BitBlt()

, 당신은 BitBltCAPTUREBLT 플래그를 통과해야합니다커서가 깜박이면 this technet article을 읽어 이유를 찾으십시오.

NT6 +에서는 Magnification API을 사용하여 원하는 것을 수행 할 수 있습니다.

+0

안녕하세요, 감사합니다. 이제는 마우스 포인터를 깜박이게 한 시도가 GetDC() + BitBlt()라는 것을 기억합니다. 그게 주요 문제는 :(나는 포인터가 깜박 거리고 싶지 않다. 스크린 샷을 아무렇게나 얻을 수있는 방법은 무엇입니까? – Microkernel

+0

그냥 CAPTUREBLT 플래그를 전달하지 마십시오. – Anders

관련 문제