J'essaye de capturer le bureau. J'ai trouvé du code qui capture le bureau, mais prend du temps.comment capturer le bureau en utilisant vC++
void CSDITESTView::OnFileTest()
{
int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
HWND hDesktopWnd = GetDesktopWindow()->m_hWnd;
HDC hDesktopDC = ::GetDC(hDesktopWnd);
HDC hCaptureDC = CreateCompatibleDC(hDesktopDC);
HBITMAP hCaptureBitmap =CreateCompatibleBitmap(hDesktopDC,nScreenWidth, nScreenHeight);
SelectObject(hCaptureDC,hCaptureBitmap);
BitBlt(hCaptureDC,0,0,nScreenWidth,nScreenHeight, hDesktopDC,0,0,SRCCOPY|CAPTUREBLT);
::ReleaseDC(hDesktopWnd,hDesktopDC);
DeleteDC(hCaptureDC);
}
Mais j'ai besoin de code qui capture rapidement et l'enregistre comme image.
Merci à l'avance ..
Je ne sais pas pourquoi cela prendrait trop de temps. Combien de temps, exactement, et quelle ligne de code est la plus lente? –
Je dois enregistrer les actions du bureau dans la vidéo. Mais le code ci-dessus prend 2 ou 3 secondes pour capturer une seule image. donc quand je suis continuellement utiliser le code pour capturer l'image, le système se bloque. Je cherche un code qui capture sans prendre de temps. Veuillez me guider vers le bon chemin. – Santhosh
Avez-vous essayé de créer l'image au début et de la réutiliser plutôt que de la créer à chaque fois? –