GetDIBits von NICHT sichtbarem Fenster
-
Gibt es eine Möglichkeit einen Screenshot eines Fensters zu machen das nicht sichtbar ist?
Also entweder minimiert oder hinter einem anderen Fenster...thx
plplp
-
du könntest doch mit GetDC(hWnd) den DeviceKontext herausfinden.
Dazu brauchst du aber den HWND.
hWnd = FindWindow(NULL,"Fenstertitel"); hDC = GetDC(hWnd);Ja, nun musste nur noch blitten.
-
naja... so hab ich das auch schon.
Der Screenshot von der Stelle wo das Fenster theoretisch zu sehen wäre bekomm ich auch. Aber halt nur das was man sieht, nicht von dem Fenster von dem ich das haben will.so hab ich es:
- FindWindow
- GetDC (oder GetWindowDC)
- CreateCompatibleDC
- CreateCompatibleBitmap
- BitBlt (oder StretchBlt)
- GetDIBitsnoch eine idee?
pappalapapp
-
kann man nicht mit InvalidateRect das fenster neu zeichnen lassen??
ich hab keine ahnung^^.
-
es 'könnte' möglich sein, wenn das fenster den style CS_SAVEBITS hat, d.h. der komplette fensterinhalt von windoofs als bitmap verwaltet wird (so ein fenster kriegt z.b. keine WM_PAINT messages).

-
hat windoof dafür keine Funktion???
wie soll das denn bei Vista gehen?
-
Eben,
bei Vista gibt es ja auch die Sache mit dem Previewfenster in der Taskbar...
-
Schaut euch mal WM_PRINT an.
Bei Vista könnte die DWM-API interessant sein:
http://msdn2.microsoft.com/en-us/library/aa969540.aspx
-
WM_PRINT bringts schon ziemlich gut.
Leider nicht wenn das Fenster minimiert ist.Danke!!!!!!!!
-
Warum maximierst du es nicht, machst es unsichtbar, zeichnest und minimierst es wieder?
Man sollte dann als user nichts merken wenn du es optimierst

PS: das ist doch sau unlogisch, warum solltest du zeichnen wollen wenn dein Fenster minimiert ist??? Es sieht ja niemand was du zeichnest,
zeichne doch einfach wenn das Fenster wieder aufgeht...
Kein unsinniger code der was zeichnet was man zu dem Zeitpunkt ja garnicht braucht
-
Ich weiß schon was ich machen und wann ich zeichnen will. :p
Ich glaube der Thread kann als geschlossen betrachtet werden.Danke für alle Anregungen und die Hilfe.