Seite 1 von 1

Bild vom ForegoundWindow

Verfasst: 28.04.2013 19:08
von Velindos
Hallo,
teste gerade das neue PB 5.11 unter Windows 8 und habe gerade mit dem Befehl "GetForegroundWindow_" meine Probleme.

Nach dem Klicken auf das gewünschte Windows sollte dieses genau abgebildet werden, was aber nicht Fall ist!

Code: Alles auswählen

Delay(3000); Klicken auf das Forground Windwos
GetWindowRect_(GetForegroundWindow_(), @r.rect)
CreateImage(0, r\right - r\left, r\bottom - r\top)
DC = StartDrawing(ImageOutput(0))
BitBlt_(DC, 0, 0, r\right - r\left, r\bottom - r\top, GetWindowDC_(GetForegroundWindow_()), 0, 0, #SRCCOPY|#SRCPAINT)
;BitBlt_(DC, 0, 0, r\right - r\left, r\bottom - r\top, GetWindowDC_(GetDesktopWindow_()), 0, 0, #SRCCOPY)
StopDrawing()
SetClipboardImage(0); Jetzt in einen Bild-Bearbeiter einfügen mittels Einfügen aus Clipboard
Debug ImageWidth(0)
Debug ImageHeight(0)
;Format Desktop 1366 x 768 x 16
;Fehler beim Aktiven Image = 1382 x 784
End
Hier stimmt was nicht, nach Einfügen des Bildes sieht man keinen Rahmen des Vordergrund Windows?
Habe Anschliessend den Aero Modus abgeschaltet, dann verschwindet der Rahmen des Windows komplett.

Weiss jeman an was das liegt, zB. Aero oder so...

Gruss ... Velindos

Re: Bild vom ForegoundWindow

Verfasst: 28.04.2013 23:05
von rolaf
Jo ist so. Eigenart von Aero. Passiert bei Fenstern die nicht resizebar sind, ist bei mir bei meinem Screenshot-Tool schon lange aufgefallen. Fenster bei der die Größe verändert werden können, werden jedoch mit vollem Rahmen angezeigt.

Re: Bild vom ForegoundWindow

Verfasst: 01.05.2013 09:15
von rolaf
Such mal nach AeroShot, das zeigt alle Fenster richtig an. So wie ich die Funktion sehe öffnet der hinter dem zu shotenden Fenster ein weisses Fenster ohne Rahmem das etwas größer ist, fotografiert dann das Fenster mit etwas mehr Rand. Anschließend sucht der an den Rändern den ersten Pixel der nicht weiss ist und schneidet dann anhand der Positionen das Fenster aus. Voila, immer mit kompletten Rahmen auch unter Aero. Netter Nebeneffekt, die runden Ecken sind alle weiss und haben nicht die Farbe des zufälligen Hintergrunds.

http://code.google.com/p/aeroshot/

Re: Bild vom ForegoundWindow

Verfasst: 01.05.2013 15:17
von rolaf
Als Ergänzung noch:

Code: Alles auswählen

Delay(3000); Klicken auf das Forground Windows
keybd_event_(#VK_SNAPSHOT, 1, 0, 0)
SetClipboardImage(0); Jetzt in einen Bild-Bearbeiter einfügen mittels Einfügen aus Clipboard
Das zeigt den Rahmen unter Aero auch richtig an. So einfach sind die Lösungen manchmal. :lol: :wink:

Re: Bild vom ForegoundWindow

Verfasst: 02.05.2013 14:43
von Velindos
Hallo rolaf,
danke, meine Achtung das ist ja wirklich kurz und schön, Gratulation und Danke.
Frage, gibt es für den Befehl "#VK_SNAPSHOT" eine Hilfe? Bastle zur Zeit nämlich noch am Snipper(Bild vom Desktop ausschneiden mit der Maus) herum!

Gruss ... Velindos

Re: Bild vom ForegoundWindow

Verfasst: 02.05.2013 16:09
von Kiffi
Velindos hat geschrieben:gibt es für den Befehl "#VK_SNAPSHOT" eine Hilfe?
<KorinthenAusscheiderModus>

#VK_SNAPSHOT ist eine Konstante, die in PB den Wert 44 repräsentiert und
keybd_event() übergeben wird, welches dadurch wiederum nichts anderes macht,
als das Drücken der 'Druck'-Taste zu simulieren.

Weitere Infos zur Druck-Taste: http://de.wikipedia.org/wiki/Druck-Taste

</KorinthenAusscheiderModus>

;-)

Grüße ... Kiffi