Gå til innhold

C++, hvordan ta screenshot av skjermen.


Anbefalte innlegg

Skrevet

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"

Videoannonse
Annonse
Skrevet

Å 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...

Skrevet

Jeg fant det ut,

	keybd_event(VK_SNAPSHOT, 0x2C, 0, 0);
keybd_event(VK_SNAPSHOT, 0x2C, KEYEVENTF_KEYUP, 0);

men hvordan kan jeg skrive det til en fil f.eks. ?

Skrevet (endret)

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
Skrevet

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.

  • 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...