Guten Tag zusammen,
ich bin gerade dabei ein kleinen Tool zu bauen, welches alle 5 Minuten einen Screenshot macht und abspeichert.
Das ganze funktioniert auch prächtig, vielen Dank an alle die an der deutschen Hilfedatei mithelfen
Wenn ich nun aber das Programm über den Button "Programm starten" starte, reagiert er nicht mehr auf die anderen GUI Inhalte, z.B. zum beenden.
Ich vermute, das hängt mit der Schleife oder eher dem Sleep zusammen.
Habe dann auch mal versucht, in die Schleife eine Abfrage zu nehmen, ob einer der Buttons geklickt wurde, das hat auch nicht fuktioniert.
Wie könnte ich das mit der 5 Minuten-Schleife den ohne das Sleep lösen?
Mein bisheriger Quellcode
C
;*****************************************
;ScreenHunter.au3 by DS
;Erstellt mit ISN AutoIt Studio v. 1.10
;*****************************************
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiButton.au3>
#include <ButtonConstants.au3>
#include <ScreenCapture.au3>
$ScreenHunter = GUICreate("ScreenHunter",300,500,-1,-1,-1,-1)
GUISetBkColor(0xFFFFFF,$ScreenHunter)
GUISetState(@SW_SHOW, $ScreenHunter)
$BtnScreenshotTest = GUICtrlCreateButton("Screenshot Test",10,60,280,31,-1,-1)
$BtnProgrammStarten = GUICtrlCreateButton("Programm starten",10,100,280,31,-1,-1)
$BtnProgrammBeenden = GUICtrlCreateButton("Programm beenden",10,140,280,31,-1,-1)
GUICtrlCreateLabel("ScreenHunter v1.0",10,423,280,15,$SS_CENTER,-1)
GUICtrlSetBkColor(-1,"-2")
; Funktion HuntingTest - Erstellt Screenshot, speichert ihn ab und öffnet ihn
Func HuntingTest()
Local $hBmp
; Erstellt Screenshot - kompletter Bildschirm
$hBmp = _ScreenCapture_Capture("")
; Speichert das Bild
_ScreenCapture_SaveImage(@MyDocumentsDir & "\screenshot.jpg", $hBmp)
; Öffnet das Bild
ShellExecute(@MyDocumentsDir & "\screenshot.jpg")
EndFunc ;==>EndeHuntingTest
; Funktion Hunting - Erstellt alle 5 Minuten einen Screenshot und speichert ihn ab
Func Hunting()
While 1
Sleep(300000)
Local $hBmp
; Erstellt Screenshot - kompletter Bildschirm
$hBmp = _ScreenCapture_Capture("")
; Speichert das Bild
_ScreenCapture_SaveImage(@MyDocumentsDir & "\screenshot.jpg", $hBmp)
WEnd
EndFunc ;==>EndeHunting
Local $iMsg = 0
While 1
$iMsg = GUIGetMsg()
Switch $iMsg
Case $BtnProgrammStarten
MsgBox($MB_SYSTEMMODAL, "Programm wurde gestartet...", "Programm speichert alle 5 Minuten einen Screenshot")
Hunting()
Case $BtnScreenshotTest
HuntingTest()
Case $BtnProgrammBeenden
MsgBox($MB_SYSTEMMODAL, "Programm wird beendet", "Programm wird beendet, es werden keine Screenshots mehr gespeichert")
ExitLoop
Case $GUI_EVENT_CLOSE
MsgBox($MB_SYSTEMMODAL, "Programm wird beendet", "Programm wird beendet, es werden keine Screenshots mehr gespeichert")
ExitLoop
EndSwitch
WEnd
GUIDelete($ScreenHunter)
Alles anzeigen