DVHRLD Posted July 22, 2008 Posted July 22, 2008 Well I can usually find what I am looking for and adjust it to suit my needs but I think I am stumped. Here is my script and what I would like it to do is stop when I hit the stop button. However once I hit start all other buttons do not work at all. I do not wish to exit the script just stop it allowing me to start from the beginning if I hit start again. My code is probably considered a mess to a lot which is why I am also taking any constructive critisism.... please be nice muttley Main Script CODEHotKeySet("{F4}", "Terminate") #include <IE.au3> #include <GUIConstantsEx.au3> #include <Constants.au3> #include <GUIConstantsEx.au3> #include <file.au3> #NoTrayIcon $key = IniRead("AutoViewer.ini", "Key", "key", "Registry Key Not Found") $inisize = _FileCountLines("AutoViewer.ini") +1 $ActProxy = RegRead($key, "ProxyServer") RegWrite($key, "ProxyEnabled", "REG_DWORD", 0) ;Upon startup set these values RegWrite($key, "ProxyEnable", "REG_DWORD", 0) GUICreate("AutoViewer", 430, 120) GUICtrlCreateLabel("Enter your URLs here", 30, 2) $url1 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url1", "No Url Entered"), 10, 15, 300, 20) $url2 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url2", "No Url Entered"), 10, 35, 300, 20) $url3 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url3", "No Url Entered"), 10, 55, 300, 20) $url4 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url4", "No Url Entered"), 10, 75, 300, 20) $save = GUICtrlCreateButton("Save URLs", 15, 100, 60, 20) $start = GUICtrlCreateButton("Start", 190, 100, 60, 20) $stop = GUICtrlCreateButton("Stop", 250, 100, 60, 20) GUICtrlSetState(-1, 1) $about = GUICtrlCreateButton("About", 310, 100, 60, 20) $exit = GUICtrlCreateButton("Exit", 370, 100, 60, 20) $proxy = GUICtrlCreateCheckbox("Use Proxy?", 320, 15, 80, 20) $curproxy = GUICtrlCreateButton("Current Proxy", 320, 35, 90, 20) GUICtrlSetState(-1, $GUI_DISABLE) $numproxy = GUICtrlCreateButton("Number of Proxies", 320, 55, 98, 20) GUICtrlSetState(-1, $GUI_DISABLE) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Select Case $msg = $proxy And BitAND(GUICtrlRead($proxy), $GUI_CHECKED) = $GUI_CHECKED RegWrite($key, "ProxyEnabled", "REG_DWORD", 1) RegWrite($key, "ProxyEnable", "REG_DWORD", 1) GUICtrlSetState($curproxy, $GUI_ENABLE) GUICtrlSetState($numproxy, $GUI_ENABLE) Case $msg = $proxy And BitAND(GUICtrlRead($proxy), $GUI_UNCHECKED) = $GUI_UNCHECKED RegWrite($key, "ProxyEnabled", "REG_DWORD", 0) RegWrite($key, "ProxyEnable", "REG_DWORD", 0) ; No Proxy GUICtrlSetState($curproxy, $GUI_DISABLE) GUICtrlSetState($numproxy, $GUI_DISABLE) Case $msg = $save IniWrite("AutoViewer.ini", "Url", "url1", GUICtrlRead($url1)) IniWrite("AutoViewer.ini", "Url", "url2", GUICtrlRead($url2)) IniWrite("AutoViewer.ini", "Url", "url3", GUICtrlRead($url3)) IniWrite("AutoViewer.ini", "Url", "url4", GUICtrlRead($url4)) Case $msg = $curproxy Msgbox(0,"Number of Proxies","You have " & $inisize -11 & " proxies in your list") Case $msg = $numproxy Msgbox(0,"Current Proxy","The proxy being used is" & @LF & $ActProxy) Case $msg = $about Msgbox(0,"About","AutoViewer" & @LF & "Version 1.4" & @LF & "Coded by: DvHrld" & @LF & "http://autoviewer.co.nr") Case $msg = $start Do For $count = 11 to $inisize $line = FileReadLine("AutoViewer.ini", $count) RegWrite($key, "ProxyServer", "REG_SZ", $line) Sleep(1000) $oIE = _IECreate($url1, 0, 0, 0, 0) Sleep(8000) __IENavigate($oIE, $url2, 0, 4096) ; open in a new background tab Sleep(5000) __IENavigate($oIE, $url3, 0, 4096) ; open in a new background tab Sleep(5000) __IENavigate($oIE, $url4, 0, 4096) ; open in a new background tab Sleep(180000) ProcessClose("iexplore.exe") Sleep(2000) Next Until Case $msg = $stop Case $msg = $stop ProcessClose("iexplore.exe") ExitLoop Sleep(800) Case $msg = $exit ProcessClose("iexplore.exe") Sleep(800) Exit 0 EndSelect WEnd Func Terminate() ProcessClose("iexplore.exe") Sleep(800) Exit 0 EndFunc Ini File CODE [Key] key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings url1=http://google.ca url2=http://google.com url3=http://google.org url4=http://google.net [Proxy] 12.174.245.8:80 122.212.159.49:80 122.216.131.93:80 194.83.70.20:8080 195.248.190.27:3128 198.151.38.70:80 200.145.242.30:3128 212.100.132.148:3128 212.100.132.149:3128 212.241.180.239:81 217.17.235.192:80 217.17.235.204:80 217.17.242.64:80 195.248.190.27:3128 200.145.242.30:3128 AutoViewer first public AutoIt script
Achilles Posted July 22, 2008 Posted July 22, 2008 Try GuiOnEventMode My Programs[list][*]Knight Media Player[*]Multiple Desktops[*]Daily Comics[*]Journal[/list]
DVHRLD Posted July 22, 2008 Author Posted July 22, 2008 Thansk for your help Achilles, I have come up with this rewrite using GuiOnEventMode but with some new problems the while loop starts automatically, which I would like it to start only when the start button is pressed. Also once it is stopped I would like to be able to press the the start button to start it again. I have commented out some code because it creates errors but it shows kinda what I am looking for. CODEHotKeySet("{F4}", "Terminate") #include <IE.au3> #include <GUIConstantsEx.au3> #include <Constants.au3> #include <GUIConstantsEx.au3> #include <file.au3> #NoTrayIcon Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $key = IniRead("AutoViewer.ini", "Key", "key", "Registry Key Not Found") $inisize = _FileCountLines("AutoViewer.ini") +1 $ActProxy = RegRead($key, "ProxyServer") RegWrite($key, "ProxyEnabled", "REG_DWORD", 0) ;Upon startup set these values RegWrite($key, "ProxyEnable", "REG_DWORD", 0) GUICreate("AutoViewer", 430, 120) GUICtrlCreateLabel("Enter your URLs here", 30, 2) $url1 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url1", "No Url Entered"), 10, 15, 300, 20) $url2 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url2", "No Url Entered"), 10, 35, 300, 20) $url3 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url3", "No Url Entered"), 10, 55, 300, 20) $url4 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url4", "No Url Entered"), 10, 75, 300, 20) $save = GUICtrlCreateButton("Save URLs", 15, 100, 60, 20) GUICtrlSetOnEvent($save, "save") $start = GUICtrlCreateButton("Start", 190, 100, 60, 20) ;GUICtrlSetOnEvent($start, "start") $stop = GUICtrlCreateButton("Stop", 250, 100, 60, 20) GUICtrlSetOnEvent($stop, "stop") $about = GUICtrlCreateButton("About", 310, 100, 60, 20) GUICtrlSetOnEvent($about, "about") $exit = GUICtrlCreateButton("Exit", 370, 100, 60, 20) GUICtrlSetOnEvent($exit, "Terminate") $proxy = GUICtrlCreateCheckbox("Use Proxy?", 320, 15, 80, 20) GUICtrlSetOnEvent($proxy, "proxy") $curproxy = GUICtrlCreateButton("Current Proxy", 320, 35, 90, 20) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetOnEvent($curproxy, "curproxy") $numproxy = GUICtrlCreateButton("Number of Proxies", 320, 55, 98, 20) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetOnEvent($numproxy, "numproxy") GUISetState(@SW_SHOW) While 1 For $count = 11 to $inisize $line = FileReadLine("AutoViewer.ini", $count) RegWrite($key, "ProxyServer", "REG_SZ", $line) Sleep(1000) $oIE = _IECreate($url1, 0, 0, 0, 0) Sleep(8000) __IENavigate($oIE, $url2, 0, 4096) ; open in a new background tab Sleep(5000) __IENavigate($oIE, $url3, 0, 4096) ; open in a new background tab Sleep(5000) __IENavigate($oIE, $url4, 0, 4096) ; open in a new background tab Sleep(180000) ProcessClose("iexplore.exe") Sleep(2000) Next WEnd Func proxy() If $proxy And BitAND(GUICtrlRead($proxy), $GUI_CHECKED) = $GUI_CHECKED Then RegWrite($key, "ProxyEnabled", "REG_DWORD", 1) RegWrite($key, "ProxyEnable", "REG_DWORD", 1) GUICtrlSetState($curproxy, $GUI_ENABLE) GUICtrlSetState($numproxy, $GUI_ENABLE) Else If $proxy And BitAND(GUICtrlRead($proxy), $GUI_UNCHECKED) = $GUI_UNCHECKED Then RegWrite($key, "ProxyEnabled", "REG_DWORD", 0) RegWrite($key, "ProxyEnable", "REG_DWORD", 0) ; No Proxy GUICtrlSetState($curproxy, $GUI_DISABLE) GUICtrlSetState($numproxy, $GUI_DISABLE) EndIf EndIf EndFunc Func save() IniWrite("AutoViewer.ini", "Url", "url1", GUICtrlRead($url1)) IniWrite("AutoViewer.ini", "Url", "url2", GUICtrlRead($url2)) IniWrite("AutoViewer.ini", "Url", "url3", GUICtrlRead($url3)) IniWrite("AutoViewer.ini", "Url", "url4", GUICtrlRead($url4)) EndFunc Func numproxy() Msgbox(0,"Number of Proxies","You have " & $inisize -11 & " proxies in your list") EndFunc Func curproxy() Msgbox(0,"Current Proxy","The proxy being used is" & @LF & $ActProxy) EndFunc Func about() Msgbox(0,"About","AutoViewer" & @LF & "Version 1.4" & @LF & "Coded by: DvHrld" & @LF & "http://autoviewer.co.nr") EndFunc ;Func start() ;ContinueLoop ;EndFunc Func stop() ProcessClose("iexplore.exe") Sleep(800) EndFunc Func Terminate() ProcessClose("iexplore.exe") Sleep(800) Exit 0 EndFunc AutoViewer first public AutoIt script
Achilles Posted July 22, 2008 Posted July 22, 2008 I'm not exactly sure how to test it but I think I might of made it more functional, I added a GuiOnEvent($GUI_EVENT_ClOSE, 'Terminate') which means if you press the little X it exits using your Terminate function. I moved the Loop part to the start function, and in the loop I added some GuiCtrlReads which you need to actually gather the data from the input controls. expandcollapse popupHotKeySet("{F4}", "Terminate") #include <IE.au3> #include <GUIConstantsEx.au3> #include <Constants.au3> #include <GUIConstantsEx.au3> #include <file.au3> #NoTrayIcon Opt("GUIOnEventMode", 1); Change to OnEvent mode $key = IniRead("AutoViewer.ini", "Key", "key", "Registry Key Not Found") $inisize = _FileCountLines("AutoViewer.ini") + 1 $ActProxy = RegRead($key, "ProxyServer") RegWrite($key, "ProxyEnabled", "REG_DWORD", 0);Upon startup set these values RegWrite($key, "ProxyEnable", "REG_DWORD", 0) GUICreate("AutoViewer", 430, 120) GuiSetOnEvent($GUI_EVENT_CLOSE, 'Terminate') GUICtrlCreateLabel("Enter your URLs here", 30, 2) $url1 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url1", "No Url Entered"), 10, 15, 300, 20) $url2 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url2", "No Url Entered"), 10, 35, 300, 20) $url3 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url3", "No Url Entered"), 10, 55, 300, 20) $url4 = GUICtrlCreateInput(IniRead("AutoViewer.ini", "Url", "url4", "No Url Entered"), 10, 75, 300, 20) $save = GUICtrlCreateButton("Save URLs", 15, 100, 60, 20) GUICtrlSetOnEvent($save, "save") $start = GUICtrlCreateButton("Start", 190, 100, 60, 20) GUICtrlSetOnEvent($start, "start") $stop = GUICtrlCreateButton("Stop", 250, 100, 60, 20) GUICtrlSetOnEvent($stop, "stop") $about = GUICtrlCreateButton("About", 310, 100, 60, 20) GUICtrlSetOnEvent($about, "about") $exit = GUICtrlCreateButton("Exit", 370, 100, 60, 20) GUICtrlSetOnEvent($exit, "Terminate") $proxy = GUICtrlCreateCheckbox("Use Proxy?", 320, 15, 80, 20) GUICtrlSetOnEvent($proxy, "proxy") $curproxy = GUICtrlCreateButton("Current Proxy", 320, 35, 90, 20) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetOnEvent($curproxy, "curproxy") $numproxy = GUICtrlCreateButton("Number of Proxies", 320, 55, 98, 20) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetOnEvent($numproxy, "numproxy") GUISetState(@SW_SHOW) While 1 Sleep(200) WEnd Func proxy() If $proxy And BitAND(GUICtrlRead($proxy), $GUI_CHECKED) = $GUI_CHECKED Then RegWrite($key, "ProxyEnabled", "REG_DWORD", 1) RegWrite($key, "ProxyEnable", "REG_DWORD", 1) GUICtrlSetState($curproxy, $GUI_ENABLE) GUICtrlSetState($numproxy, $GUI_ENABLE) Else If $proxy And BitAND(GUICtrlRead($proxy), $GUI_UNCHECKED) = $GUI_UNCHECKED Then RegWrite($key, "ProxyEnabled", "REG_DWORD", 0) RegWrite($key, "ProxyEnable", "REG_DWORD", 0); No Proxy GUICtrlSetState($curproxy, $GUI_DISABLE) GUICtrlSetState($numproxy, $GUI_DISABLE) EndIf EndIf EndFunc ;==>proxy Func save() IniWrite("AutoViewer.ini", "Url", "url1", GUICtrlRead($url1)) IniWrite("AutoViewer.ini", "Url", "url2", GUICtrlRead($url2)) IniWrite("AutoViewer.ini", "Url", "url3", GUICtrlRead($url3)) IniWrite("AutoViewer.ini", "Url", "url4", GUICtrlRead($url4)) EndFunc ;==>save Func numproxy() MsgBox(0, "Number of Proxies", "You have " & $inisize - 11 & " proxies in your list") EndFunc ;==>numproxy Func curproxy() MsgBox(0, "Current Proxy", "The proxy being used is" & @LF & $ActProxy) EndFunc ;==>curproxy Func about() MsgBox(0, "About", "AutoViewer" & @LF & "Version 1.4" & @LF & "Coded by: DvHrld" & @LF & "http://autoviewer.co.nr") EndFunc ;==>about Func start() For $count = 11 To $inisize $line = FileReadLine("AutoViewer.ini", $count) RegWrite($key, "ProxyServer", "REG_SZ", $line) Sleep(1000) $oIE = _IECreate(GuiCtrlRead($url1), 0, 0, 0, 0); <-- Added a GuiCtrlRead Sleep(8000) __IENavigate($oIE, GuiCtrlRead($url2), 0, 4096); open in a new background tab Sleep(5000) __IENavigate($oIE, GuiCtrlRead($url3), 0, 4096); open in a new background tab Sleep(5000) __IENavigate($oIE, GuiCtrlRead($url4), 0, 4096); open in a new background tab Sleep(180000) ProcessClose("iexplore.exe") Sleep(2000) Next EndFunc Func stop() ProcessClose("iexplore.exe") ;~ Sleep(800) EndFunc ;==>stop Func Terminate() ProcessClose("iexplore.exe") ;~ Sleep(800) Exit EndFunc ;==>Terminate My Programs[list][*]Knight Media Player[*]Multiple Desktops[*]Daily Comics[*]Journal[/list]
DVHRLD Posted July 26, 2008 Author Posted July 26, 2008 I finally got it using a checkbox to stop the script. Thank you for your help though you added a bunch of good things that I did not think of doing. AutoViewer first public AutoIt script
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