Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41

    [C] Catturare lo schermo

    Salve a tutti...

    Come faccio a catturare e salvare lo schermo velocemente?

    Ho provate con l'api GetPixel...ma è terribilmente lenta , non è possibile salvare direttamente il device context delle schermo su una bitmap?

    Grazie comunque ....ciaooooooooo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Intendi tutto il desktop?

    La tua applicazione e' visibile?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41
    esattemente ciò che appare sul desktop anke la mia applicazione

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Nella tua applicazione c'e' una superficie dove vorresti disegnato il desktop ?

    O ti basta averlo in una bitmap ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41
    vorrei salvare sul pc...è possibilmente convertirla in jpg però una cosa alla volta....comunque salvarla come
    sfondo.bmp

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Allora ... con questo semplice codice

    codice:
    #include <windows.h>
    
    void main()
    {
      HDC hDC = GetDC(NULL); 
    	
      HDC hMemDC = CreateCompatibleDC(hDC);
    
      SIZE sz;
      sz.cx = GetSystemMetrics(SM_CXSCREEN);
      sz.cy = GetSystemMetrics(SM_CYSCREEN);
    
      HBITMAP hBmp = CreateCompatibleBitmap(hDC, sz.cx, sz.cy);
      if (hBmp)
      {
        HBITMAP hOld = (HBITMAP) SelectObject(hMemDC, hBmp);
        BitBlt(hMemDC, 0, 0, sz.cx, sz.cy, hDC, 0, 0, SRCCOPY);
        SelectObject(hMemDC, hOld);
    		
        // Bitmap!
    
        DeleteObject(hBmp);
      }
    
      DeleteDC(hMemDC);
      ReleaseDC(NULL, hDC);
    }
    nella linea segnata con il commento Bitmap! hai la disponibilita' dell'oggetto hBmp che contiene il desktop e ci puoi fare quello che vuoi ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41
    ecco fino a li ci ero più o meno arrivato io mio problema è proprio nel salvarla sull'harddisk...o comunque gestirla ...come faccio ad avere i singoli BYTE della bitmap ottenuta con il tuo modo?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se c'eri arrivato allora il tuo problema non era prelevare il desktop in una bitmap ma salvare su disco una generica bitmap?

    E' giusto?

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41
    ok...mi ero spiegato male...
    è la gestione dal momento in cui ho la bitmap non salvata sull'harddisk

    e poi io per ottenere ildevice del desktop ho usato

    hdcs= CreateDC("DISPLAY", NULL, NULL, NULL);

    c'è differenza?...comunque come faccio a manipolare i byte?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il device context e' gia' disponibile ... non ha senso crearlo dal nome di periferica ...

    Per salvare la bitmap su disco, la cosa non e' semplicissima.
    Esiste un esempio completo su MSDN da cui puoi prendere spunto

    http://msdn.microsoft.com/library/de...tmaps_7zfp.asp

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.