screenshot erzeugen

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

Code:
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):

Code:
#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
 
Zurück