![]() |
"Fensterfoto" unter Windows 7 klappt nicht so recht...
Hi,
nun muss ich doch mal nachfragen. Ich mochte von einem Fenster welches Subfenster enthält eins dieser Subfenster als Bild kopieren. Das klappt bei den OS XP und Vista ohne Probleme, jedoch bei Win7 bekomme ich den kompletten Desktop in mein Bitmap kopiert. Ich glaube mich zu erinnern, das schon mal so ein Thema gab nur leider finde ich es nicht mehr. |
AW: "Fensterfoto" unter Windows 7 klappt nicht so recht...
Wie versuchst du den Screenshot zu machen?
|
AW: "Fensterfoto" unter Windows 7 klappt nicht so recht...
So:
Delphi-Quellcode:
if (hNotifierWnd <> 0) and (isWindowVisible(hNotifierWnd)) then
begin hInetExpWnd := FindWindowByClasses(...); if hInetExpWnd <> 0 then begin GetClientRect(hInetExpWnd, cwcr); hINSWndDC := GetDC(hInetExpWnd); if hINSWndDC <> 0 then begin with cwcr do stretchblt(hBmpDC, 0, 37, clWndWidth, clWndHeight - 37, hINSWndDC, 0, 0, Right - Left, Bottom - Top, SRCCOPY); // ... end; ReleaseDC(hInetExpWnd, hINSWndDC); end; end; |
AW: "Fensterfoto" unter Windows 7 klappt nicht so recht...
Wird das Fenster denn gefunden?
|
AW: "Fensterfoto" unter Windows 7 klappt nicht so recht...
Also ich würde versuchen den Code sauber in einer Prozedur zu verpacken.
(Stichwort: Wiederverwendbarkeit und Testbarkeit) Als Übergabeparameter würde ich das Fensterhandle und ein TBitmap-Objekt übergeben:
Delphi-Quellcode:
Dann würde ich zunächst einmal mit einem Fenster der eigenen Anwendung testen.
procedure MakeWindowScreenshot(hWnd:THWND; bitmap:TBitmap);
Danach würde ich es mit einem fremden Fenster versuchen, dass mit FindWindowByClasses(...) gefunden wurde. Und ausserdem würde ich eine Exception werfen, wenn FindWindowByClasses(...) kein gültiges Fensterhandle liefert. |
AW: "Fensterfoto" unter Windows 7 klappt nicht so recht...
Vielleicht auch mal schauen ob und welche Fehlermeldung GetClientRect liefert.
Und stretchblt hätte auch noch ein Result zum Prüfen, aber da hier ein anscheinend Bild geliefert wird, scheint das ja zu gehn. @Luckie: Der Desktop hat zwar das Pseudo-Handle 0, aber er prüft ja auf
Delphi-Quellcode:
, also wird vermutlich das Fenster gefunden.
<> 0
|
AW: "Fensterfoto" unter Windows 7 klappt nicht so recht...
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz