Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1418 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Screenshot Win32

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Screenshot Win32

n°139232
marcelloTI
Posté le 15-05-2002 à 13:53:01  profilanswer
 

Salut,
 
je suis en étudiant en informatique. j'amimerais savoir comment faire pour sauver dans un bitmap le screen shot courant avec les API de Windows. (donc simuler le touche Prt Sc).
 
j'ai essaye avec GetDesktopWindow .... mais avec aucun succes..
 
J'utilise visual c++ 6.0
 
merci beaucoup
 
Marcel Beyeler
 
ps. excuse moi pour le mauvais français ... mais ce n'est pas ma langue maternelle!!!!!

mood
Publicité
Posté le 15-05-2002 à 13:53:01  profilanswer
 

n°139254
El_gringo
Posté le 15-05-2002 à 14:18:00  profilanswer
 

ça m'étonnerai que l'API windows ait une fonction qui permette de faire ça directement.
Par contre, pourquoi ne pas simuler une pression sur cette touche
"Prt Sc" !?
Avec le message WM_KEYDOWN...

 

[jfdsdjhfuetppo]--Message édité par el_gringo le 15-05-2002 à 14:22:32--[/jfdsdjhfuetppo]

n°139259
Carbon_14
Posté le 15-05-2002 à 14:28:52  profilanswer
 

J'ai trouvé ça en VB, mais comme tout est en API, ça peut se traduire
 
http://www.andreavb.com/tip090001.html
 
Il me semblait que ça pouvait s'écrire en trois lignes, mais j'ai dû rêver (mémoire peu fidèle).

n°139264
Carbon_14
Posté le 15-05-2002 à 14:38:35  profilanswer
 

Ca donnerait qq chose comme ça (aux étourderies près) :
 
void CaptureScreen(HWND hWndMain, long Left, long Top, long Width, long Height)
{
    HDC srcDC;
    HDC trgDC;
    HBITMAP BMPHandle;
    DEVMODE *dm;
 
    srcDC = CreateDC("DISPLAY", "", "", &dm);
    trgDC = CreateCompatibleDC(srcDC);
    BMPHandle = CreateCompatibleBitmap(srcDC, Width, Height);
    SelectObject(trgDC, BMPHandle);
    BitBlt(trgDC, 0, 0, Width, Height, srcDC, Left, Top, SRCCOPY);
    OpenClipboard(hWndMain);
    EmptyClipboard();
    SetClipboardData(CF_BITMAP, BMPHandle);
    CloseClipboard();
    DeleteDC(trgDC);
    ReleaseDC(BMPHandle, srcDC);
}
 
Les dimensions de la fenêtre principale, on peut les avoir avec GetWindowRect()
 
Le hWnd "main" se retrouve par hWndMain = GetDesktopWindow();


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Screenshot Win32

 

Sujets relatifs
[OGL] plein écran avec api win32[C++] App Win32, affichage du bureau = crash (DC effacé)
[C++ Builder] Win32 Error. Code : 1410.La classe existe déjà[c++ win32 console]
[Win32] C'est possible d'accéder a la couche IP?Quel languages pour prog win32
[Win32] Mais en fait ca sert a quoi un HINSTANCE??[Win32/C/C++] Afficher les cartes de CARDS.DLL dans un DC
[C++] Utiliser MAKEINTRESOURCE dans app Win32 sans MFC[WIN32] GroupBox recalcitrant et infos diverses
Plus de sujets relatifs à : Screenshot Win32


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR