>백엔드 개발 >C++ >Win32 API를 사용하여 Windows 응용 프로그램 스크린샷을 캡처하려면 어떻게 해야 합니까?

Win32 API를 사용하여 Windows 응용 프로그램 스크린샷을 캡처하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-05 22:12:171006검색

How Can I Capture a Windows Application Screenshot Using the Win32 API?

Windows 응용 프로그램 스크린샷 캡처

Windows 프로그래밍에서는 현재 화면의 스크린샷을 캡처하는 것이 일반적인 요구 사항입니다. 이를 위해 Win32 API는 화면의 비트맵 표현을 얻는 데 필요한 기능을 제공합니다.

Win32 스크린샷 코드

Windows 애플리케이션에서 스크린샷을 찍으려면 다음을 사용하세요. Win32의 경우 다음 단계를 따르세요.

HDC hScreenDC = GetDC(nullptr);

전체의 장치 컨텍스트를 검색합니다. screen.

HDC hMemoryDC = CreateCompatibleDC(hScreenDC);

화면 비트맵 복사를 위해 호환되는 장치 컨텍스트를 만듭니다.

int width = GetDeviceCaps(hScreenDC,HORZRES);
int height = GetDeviceCaps(hScreenDC,VERTRES);

화면의 너비와 높이를 픽셀 단위로 가져옵니다.

HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC,width,height);

화면 이미지를 저장할 호환 가능한 비트맵을 생성하세요.

HBITMAP hOldBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hBitmap));

호환되는 비트맵을 선택하세요. 호환 장치 컨텍스트.

BitBlt(hMemoryDC,0,0,width,height,hScreenDC,0,0,SRCCOPY);

비트 블록 전송(BitBlt)을 사용하여 화면 이미지를 호환 비트맵에 복사합니다.

hBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hOldBitmap));

이전 비트맵 선택을 메모리 장치 컨텍스트로 복원합니다.

DeleteDC(hMemoryDC);
DeleteDC(hScreenDC);

리소스를 해제하려면 두 장치 컨텍스트를 모두 삭제하세요.

위 내용은 Win32 API를 사용하여 Windows 응용 프로그램 스크린샷을 캡처하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.