bwsfca Posted June 20, 2007 Posted June 20, 2007 Could someone tell me why my exit button will not work? It seems to only work when there is no Sleep within the While statement. Is there any other way to pause within the while statement? In the end, I would like this script to monitor the text in 3 specific controls, from 3 applications, displaying them in the list below. CODE#include <GuiConstants.au3> ; Create the GUI. GuiCreate("Pas Check", 400, 400) ; Creates a BUTTON Control. $BrkEnd = GUICtrlCreateButton("Exit", 90, 90, 80, 25) ; set the GUI as visible. GuiSetState() While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Or $msg = $BrkEnd Then Exit EndIf $P1 = ControlGetText("AutoIt Help", "", "Edit1") $P2 = ControlGetText("AutoIt Help", "", "Edit1") $P3 = ControlGetText("AutoIt Help", "", "Edit1") $listView = GuiCtrlCreateListView("Process|Status|", 110, 190, 110, 80) GuiCtrlCreateListViewItem("PAS1|" & $P1, $listView) ; sets the list view items. GuiCtrlCreateListViewItem("PAS2|" & $P2, $listView) GuiCtrlCreateListViewItem("PAS3|" & $P3, $listView) sleep (1000) WEnd
Valuater Posted June 20, 2007 Posted June 20, 2007 sleep(1000) will make the button not work correctly... #include <GuiConstants.au3> ; Create the GUI. GUICreate("Pas Check", 400, 400) ; Create the listview $listView = GUICtrlCreateListView("Process|Status|", 110, 190, 110, 80) ; Creates a BUTTON Control. $BrkEnd = GUICtrlCreateButton("Exit", 90, 90, 80, 25) ; set the GUI as visible. GUISetState() ; start a timer $begin = TimerInit() While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Or $msg = $BrkEnd Then Exit EndIf If TimerDiff($begin) >= 1000 Then ; wait time $begin = TimerInit() $P1 = ControlGetText("AutoIt Help", "", "Edit1") $P2 = ControlGetText("AutoIt Help", "", "Edit1") $P3 = ControlGetText("AutoIt Help", "", "Edit1") GUICtrlCreateListViewItem("PAS1|" & $P1, $listView) ; sets the list view items. GUICtrlCreateListViewItem("PAS2|" & $P2, $listView) GUICtrlCreateListViewItem("PAS3|" & $P3, $listView) EndIf WEnd 8)
bwsfca Posted June 20, 2007 Author Posted June 20, 2007 Thanks, I need another option though. With your code it is creating a list of values (each poll gets added to the list). In my previous code, it is updating the list (only ever 3 lines in the list); this is what I need. Does that make sense at all?
Valuater Posted June 20, 2007 Posted June 20, 2007 Maybe..... #include <GuiConstants.au3> ; Create the GUI. GUICreate("Pas Check", 400, 400) ; Create the listview $listView = GUICtrlCreateListView("Process|Status|", 110, 190, 110, 90) $item1 = GUICtrlCreateListViewItem("", $listView) $item2 = GUICtrlCreateListViewItem("", $listView) $item3 = GUICtrlCreateListViewItem("", $listView) ; Creates a BUTTON Control. $BrkEnd = GUICtrlCreateButton("Exit", 90, 90, 80, 25) ; set the GUI as visible. GUISetState() ; start a timer $begin = TimerInit() While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Or $msg = $BrkEnd Then Exit EndIf If TimerDiff($begin) >= 1000 Then ; wait time $begin = TimerInit() $P1 = ControlGetText("AutoIt Help", "", "Edit1") $P2 = ControlGetText("AutoIt Help", "", "Edit1") $P3 = ControlGetText("AutoIt Help", "", "Edit1") GUICtrlSetData($item1, "PAS1|" & $P1) GUICtrlSetData($item2, "PAS2|" & $P2) GUICtrlSetData($item3, "PAS3|" & $P3) EndIf WEnd 8)
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