esmaeel Posted June 2, 2020 Share Posted June 2, 2020 Hello, I'm trying to design a GUI in AutoIT in which I could start and stop a while loop any time the specified Button is clicked. I want to record the desktop activities when the start is clicked by the user and stop it when stop is clicked ans then start it again also whenever start is clicked. The problem is when I click the start , it could never be stopped. Is there an Idea? Thank you in advance Here is my code: #include <GUIConstantsEx.au3> $hGUI = GUICreate("D.A.Recorder", 250, 100) $hButton_1 = GUICtrlCreateButton("Start", 10, 10, 80, 30) $hButton_2 = GUICtrlCreateButton("Stop", 10, 50, 80, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $hButton_1 , $hButton_2 _Func_1() EndSwitch WEnd Func _Func_1() While 1 $IdMsg = GUIGetMsg() if $IdMsg = $hButton_2 Then ExitLoop EndIf Local $Wactive = WinGetTitle("[ACTIVE]") $Begin = TimerInit() $BeginTime = @HOUR & ":" & @MIN WinWaitNotActive($Wactive) ;Just waits until the current active Window is either closed or another window set as active $dif = TimerDiff($begin) ;Calculates the elapsed time in Milliseconds $EndTime = @HOUR & ":" & @MIN $WorkedTime = $dif/1000 ;Convert the time to seconds $result = StringFormat("%.2f",$WorkedTime) FileWriteLine("OfflineRecorder.txt", $BeginTime & " | " & $EndTime & " | " & $result & " | " & $Wactive) WEnd EndFunc Link to comment Share on other sites More sharing options...
MrCreatoR Posted June 3, 2020 Share Posted June 3, 2020 First of all, please use AutoIt code tags for your code. About your issue, probably inside the loop it's hangs on WinWaitNotActive call and thus your button event not checked. You could make a wrapper for that function to see if during it's execution there is some events from the GUI: expandcollapse popup#include <GUIConstantsEx.au3> Global $bStart = False $hGUI = GUICreate("D.A.Recorder", 250, 100) $iStart_Bttn = GUICtrlCreateButton("Start", 10, 10, 80, 30) $iStop_Bttn = GUICtrlCreateButton("Stop", 10, 50, 80, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $iStart_Bttn $bStart = True Case $iStop_Bttn $bStart = False EndSwitch If $bStart Then $Wactive = WinGetTitle("[ACTIVE]") $Begin = TimerInit() $BeginTime = @HOUR & ":" & @MIN ;---- WinWaitNotActive Wrapper ---- ;Just waits until the current active Window is either closed or another window set as active While WinActive($Wactive) Switch GUIGetMsg() Case $iStop_Bttn $bStart = False ExitLoop Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd ;---- WinWaitNotActive Wrapper ---- If $bStart Then $dif = TimerDiff($begin) ;Calculates the elapsed time in Milliseconds $EndTime = @HOUR & ":" & @MIN $WorkedTime = $dif / 1000 ;Convert the time to seconds $result = StringFormat("%.2f", $WorkedTime) FileWriteLine("OfflineRecorder.txt", $BeginTime & " | " & $EndTime & " | " & $result & " | " & $Wactive) EndIf EndIf WEnd esmaeel 1 Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team Link to comment Share on other sites More sharing options...
esmaeel Posted June 3, 2020 Author Share Posted June 3, 2020 Fantastic, thank you so much MrCreatoR, it worked perfect. Link to comment Share on other sites More sharing options...
MrCreatoR Posted June 3, 2020 Share Posted June 3, 2020 Your welcome. esmaeel 1 Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now