Hallo Leute,
ich arbeite zur Zeit nebenbei an einem kleinen Tool, welches uns die Dokumentation von Installationen erleichern soll.
Das Tool soll, im wesentlichen, Screenshots generieren, wenn man einen Linksklick ausführt.
Hinzu kommen noch eine Pausenfunktion und ein paar weitere Hotkeys mit anderen Funktionen.
Das ganze Script funktioniert soweit einwandfrei. Nun kommt allerdings ein Punkt, an dem ich nicht weiterkomme:
Ich möchte nämlich keinen Full Screen Screenshot Machen sondern ein Screenshot des Fensters, auf das ich Klicke.
(bzw. auf dessen Button ich gerade Klicke. Wenn kein Fenster gedrück wurde gibt es einfach wieder einen Full Screen Screenshot.)
Am Ende findet Ihr den Quellcode des Scriptkerns.
Wie ihr dort sehen könne "scanne" ich in einer Schleife mittels "_IsPressed()" nach bestimmten Tasten.
Wird eine dieser Tasten gedrückt wird ein Screenshot ausgeführt, die Pause gestartet oder die Funktion beendet.
Ich habe sowohl die Funktionen "TakeScreenshot()" als auch "TakeFullScreenScreenshot()". Aktuell enthalten beide den Code des Full Screen.
Einen Code für den "normalen" Screenshot suche ich noch.
Dabei dachte ich an https://www.autoitscript.com/autoit3/docs/l…_CaptureWnd.htm
Hier kann ich ein Screenshot eines Fensters Machen. Allerdings benötige ich dazu die Informationen des Fensters.
Meine Frage ist an euch wie ich innerhalb dieser Funktionsstruktur (vermutlich innerhalb der jeweilen If-Abfrage) an die Fensterinformationen komme.
Gibt es eine Möglichkeit an diese mittels _isPressed zu kommen?
Vielen Dank für jede Hilfe!
LG
Func CaptureRoutine() ; Manage capturing
Local $iReady = 1
While 1
If ($iReady == 1) Then
ShowToolTip($sTextReady, $TIP_INFOICON, 0)
$iReady = 0
EndIf
If _IsPressed($sLMB, $hDLL) Then ;Left Mouse Button
ShowToolTip($sTextWorking, $TIP_WARNINGICON, 750)
$iReady = 1
TakeSnapshot()
IncCounter()
While _IsPressed($sLMB, $hDLL)
Sleep(50)
WEnd
ElseIf _IsPressed($sButtonSnap, $hDLL) Then ;alternative Snapshot key
ShowToolTip($sTextWorking, $TIP_WARNINGICON, 750)
$iReady = 1
TakeSnapshot()
IncCounter()
While _IsPressed($sButtonSnap, $hDLL)
Sleep(50)
WEnd
ElseIf _IsPressed($sButtonFSS, $hDLL) Then ;Full screen Snapshot key
ShowToolTip($sTextWorking, $TIP_WARNINGICON, 750)
$iReady = 1
TakeFullScreenSnapshot()
IncCounter()
While _IsPressed($sButtonFSS, $hDLL)
Sleep(50)
WEnd
ElseIf _IsPressed($sButtonPause, $hDLL) Then ;Wait for screenshots
ShowToolTip($sTextPause, $TIP_INFOICON, 0)
$iReady = 1
While _IsPressed($sButtonPause, $hDLL)
Sleep(50)
WEnd
while 1
If _IsPressed($sButtonPause, $hDLL) Then
While _IsPressed($sButtonPause, $hDLL)
Sleep(50)
WEnd
ExitLoop
EndIf
Sleep(50)
WEnd
ElseIf _IsPressed($sButtonExit, $hDLL) Then ;Exit program
ExitLoop
EndIf
Sleep(50)
WEnd
DllClose($hDLL)
ShowToolTip($sTextExit, $TIP_ERRORICON, 3000)
EndFunc ;==> CaptureRoutine
Func TakeSnapshot() ;Take Snapshot of the current window
_ScreenCapture_Capture($sPath & GetFullPicName())
EndFunc ;==>TakeSnapshot
Alles anzeigen