Gå til innhold

C++, hvordan ta screenshot av skjermen.


Anbefalte innlegg

Er det noen måte jeg kan gjøre dette på? Kanskje emulere prnt scrn knappen på noe vis? Noen som kunne være så greie å gi meg et eksempel hvis det er mulig? :innocent:

 

Det jeg vil er å ta et screenshot av skjermen så dermed skrive det til et eller annet format (samme hvilket).

Prøvde denne

TakeScreenShot("c:\\Screenshot.bmp");

, men da fikk jeg feilmeldingen "error C3861: 'TakeScreenShot': identifier not found"

Lenke til kommentar
Videoannonse
Annonse

Å emulere print screen hadde nok fungert, ja. Sjekk ut SendKey-funksjonen på MSDN. (Tror funksjonen het SendKey...) Ellers så jeg et eksempel i QT-manualen der det ble laget et program som tok en screenshot, men dette blir vel kanskje litt overkill hvis du bare skal ta et screenshot på enklest mulig måte...

Lenke til kommentar

Prøver å finne ut hvordan jeg skal få det til, vil også opplyse om at jeg er en nybegynner!

#include <fstream>
#include <windows.h>

using namespace std;

int main()
{
while(1)
{
keybd_event(VK_SNAPSHOT, 0x2c, 0, 0);
keybd_event(VK_SNAPSHOT, 0x2c, KEYEVENTF_KEYUP, 0);

ofstream SaveFile("screen.tiff");
SaveFile << GetClipboardData(CF_TIFF);
SaveFile.close();

Sleep(1000 * 10);
}
}

Vet ikke om jeg har riktig idè? Noen som kan gi meg noen veiledninger om hvordan jeg kan få dette til å fungere?

Endret av Mightal
Lenke til kommentar

Du må åpne Clipboardet før du kan bruke det, med

HANDLE clipboard = OpenClipboard(NULL);

 

Dessuten så returnerer GetClipboardData en HANDLE til f.eks. et TIFF bilde i ditt tilfelle.

 

Det kan også godt hende at Screenshot lagrer et BMP bilde, i så fall returnerer den en HBITMAP handle.

 

For å gjøre om et HBITMAP til en tiff fil tror jeg det kreves litt greier, er ikke sikker.

I så fall må du bruke GetDIBits funksjonen for å lese pixel data til et buffer, og deretter lagre det i TIFF format.

Lenke til kommentar
  • 3 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...