Aktives Fenster für "Screenshot" auswählen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ghosty1967
Beiträge: 205
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Aktives Fenster für "Screenshot" auswählen

Beitrag von Ghosty1967 »

Hallo Forengemeinde...

Ich bastel gerade an einem eigenen kleinen Capture-Programm und möchte gerne folgendes realisieren.
Um einen screenshot von einem bestimmten geöffneten Fenster (z.B. Notepad) zu machen, möchte ich
gerne aus meinem Programm raus auf einen "Doppelklick" mit der Maus auf die "Titelleiste" des entsprechenden
Fenstern warten und danach dessen handle ermitteln um es als Bitmap in die Zwischenablage legen zu können.
Leider habe ich so garkeine Idee, wie ich das anstellen kann bzw. ob das überhaupt so geht, wie ich mir das denke.

Ich wäre sehr dankbar, wenn mir jemand Tipps oder Schnipsel geben könnte, wie ich hier weiter komme! :roll:

Hat sich erledigt... mir ist gerade eingefallen, das das Blödsinn ist, da ja jedes Fenster bei einem Doppelklick in die
Titelleiste maximiert wird :lol: :freak: . Ich werde das also über "RegisterHotKey_()" realisieren!
Dieser Beitrag kann dann also wieder gelöscht werden
Sorry, erst denken, dann schreiben :praise:
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Aktives Fenster für "Screenshot" auswählen

Beitrag von rolaf »

Code: Alles auswählen

Enumeration
  #imgCapture
EndEnumeration

Procedure CaptureWindow()
  GetWindowRect_(GetForegroundWindow_(), @r.rect)
  CreateImage(#imgCapture, r\right - r\left, r\bottom - r\top) 
  DC = StartDrawing(ImageOutput(#imgCapture)) 
    BitBlt_(DC, 0, 0, r\right - r\left, r\bottom - r\top, GetWindowDC_(GetForegroundWindow_()), 0, 0, #SRCCOPY)
  StopDrawing()
EndProcedure

Delay(5000)
CaptureWindow()
SetClipboardImage(#imgCapture)
Starten, Fenster das "erschossen" werden soll in den Vordergrund holen, kurz warten, Schuss ist in der Zwischenablage. :mrgreen:

Natürlich kann man den "Schuß" auch über die Funktion GetAsyncKeyState_() steuern.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Aktives Fenster für "Screenshot" auswählen

Beitrag von Kiffi »

Ghosty1967 hat geschrieben:Dieser Beitrag kann dann also wieder gelöscht werden
hättest Du selber machen können, denn wenn noch niemand auf
Deinen Beitrag geantwortet hat, kannst Du ihn mit Klick auf den
'Löschen'-Button entfernen. Geht jetzt natürlich nicht mehr ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Aktives Fenster für "Screenshot" auswählen

Beitrag von rolaf »

Kiffi hat geschrieben:
Ghosty1967 hat geschrieben:Dieser Beitrag kann dann also wieder gelöscht werden
hättest Du selber machen können, denn wenn noch niemand auf
Deinen Beitrag geantwortet hat, kannst Du ihn mit Klick auf den
'Löschen'-Button entfernen. Geht jetzt natürlich nicht mehr ;-)

Grüße ... Kiffi
Ja, ich bin der böse Lösch-Blockierer. :lol:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Aktives Fenster für "Screenshot" auswählen

Beitrag von Kiffi »

DrFalo hat geschrieben:Ja, ich bin der böse Lösch-Blockierer. :lol:
immerhin hast Du ihm eine Stunde und eine Minute Zeit gegeben,
es selber zu machen :-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Ghosty1967
Beiträge: 205
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Re: Aktives Fenster für "Screenshot" auswählen

Beitrag von Ghosty1967 »

Yep, isch hann de Lööschknopp mit gefunge!
Antworten