GDI: probleme recuperation d'image noir

lastdream86 Messages postés 1 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 21 février 2008 - 21 févr. 2008 à 13:15
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 21 févr. 2008 à 22:07
Bonjour,
je programme sous visual studio et j'essaye de recuperer les pixels d'une application avec GDI.
Mon programme fonctionne parfaitement quand il s'agit de recuperer les pixels d'une application fenêtré  cependant celui-ci me renvoie une image noir quand je tente de recuperer les pixels d'un jeux par exemple .
Voici comment je procède pour réaliser un screen :

LPCTSTR lpCaption = "Call of Duty 4";
HWND handApp = FindWindow(0,lpCaption); //je recupere le handle du jeu
cout << handApp << endl; // je verifie que handApp n'est pas null
hdcScr = GetWindowDC(handApp);
hbmMem = CreateCompatibleBitmap(hdcScr, nScrX, nScrY);
hdcMem = CreateCompatibleDC(hdcScr);
hbmOld = (HBITMAP) SelectObject(hdcMem, hbmMem);
BitBlt(hdcMem, 0, 0, nScrX, nScrY, hdcScr, 0, 0, SRCCOPY) ;

GetDIBits(hdcMem, hbmMem, 0,

nScrY , (LPBYTE)pPixels, &bmi, DIB_RGB_COLORS);pixelList.push_back(pPixels);//je met dans une list mes pixels pour ensuite créer les images

Je ne trouve aucune solution, est-il possible que GDI soit le probleme? Toute aide est la bienvenue

merci.

2 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
21 févr. 2008 à 18:54
Salut,
En général, les jeux utilisent DirectX pour dessiner directement dans la mémoire d'affichage. Pour récupérer ces images, je pense qu'il faudra passer par DirectX.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 févr. 2008 à 22:07
correct, DirectX ne passe pas par le GDI... heureusement, sinon, de fortes chances que ca soit du DIB donc vive la lenteur.
DirectX joue directement avec la carte graphique, lui, avec les pilotes adaptés pour directX...

inaccessible, donc, depuis Windows

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous