# screenshot erzeugen



## netrobot (8. Januar 2006)

wie kann man screenshots erzeugen per programmierung?


----------



## Matthias Reitinger (8. Januar 2006)

Hallo netrobot,

zuerst möchte ich dich auf unsere Netiquette hinweisen und dich bitten, dich auch daran zu halten.

Zu deinem eigentlichen Problem wären etwas mehr Informationen nicht schlecht. Auf welchem Betriebssystem soll das Programm laufen? Mit welcher API programmierst du? Wie und wo hast du schon nach einer Lösung deines Problems gesucht?

Grüße,
 Matthias


----------



## mike4004 (8. Januar 2006)

Hi


das würde mich auch interresieren wie das in C mit der Windows api unter Xp geht?

mfg mike4004


----------



## netrobot (8. Januar 2006)

unter linux mit ANSI c++.


----------



## Tobias K. (8. Januar 2006)

moin


@mike
Also unter Windows geht das indem man sich per GetDesktopWindow ein Handle des Desktopfensters holt und dann mit GetDC den dazugehörigen Device Contaxt. Den Blittet man dann in kompatibles Bitmap Objekt und as speichert man inner Datei. Fertig.

@netrobot
KDE?


mfg
umbrasaxum


----------



## netrobot (8. Januar 2006)

leider es muss systemunabhängig sein


----------



## RedWing (9. Januar 2006)

> unter linux mit ANSI c++.



Das wird mit Stadanrd C++ nicht gehen, da du Zugriff auf das X Window System 
brauchst.
Und das geht nur mit externen APIs...


```
leider es muss systemunabhängig sein
```

qt wäre da eine gute Variante...

http://www.trolltech.com/products/qt/index.html

Ein Screenshot koenntest du dir dann so holen (siehe auch in der API von qt):


```
#include <Qt/qapplication.h>
#include <Qt/qdesktopwidget.h>
#include <Qt/qpixmap.h>

int main(int argc, char** argv){
    QApplication a(argc,argv);
    QDesktopWidget* desktop = QApplication::desktop();
    QWidget* w = desktop->screen(0);
    QPixmap snapshot = QPixmap::grabWindow(w->winId(), 0, 0, -1, -1);
    snapshot.save("screenshot.png", "PNG", 20);
}
```

Gruß

RedWing


----------



## netrobot (9. Januar 2006)

qdesktopwidget ist unter QT 2.3 nicht verfügbar


----------



## RedWing (9. Januar 2006)

netrobot hat gesagt.:
			
		

> qdesktopwidget ist unter QT 2.3 nicht verfügbar



Was hindert dich an einem update?

Bei der Verwendung von qt2.3 solltest du dir da eh Gedanken drüber machen...


Gruß

RedWing


----------



## netrobot (9. Januar 2006)

nur qt2.3 ist reif für embeded


----------



## Matthias Reitinger (9. Januar 2006)

netrobot, ich möchte dich abermals auf unsere Netiquette hinweisen, die auch für dich verbindlich ist (dem hast du bei deiner Registrierung zugestimmt). Dankeschön für die Aufmerksamkeit.


----------

