jbennett Posted October 16, 2008 Share Posted October 16, 2008 (edited) Hi, I've come up with an idea and just wondering if it's possible. I want to create an AutoIT .exe file that remains in the taskbar at all times and checks the time. If the time is midnight then it will execute a batch file. Does anyone know if this is possible and how much processing power it would take? thanks :-) p.s. there is a valid reason as to why i'm avoiding scheduled tasks Edited October 16, 2008 by jbennett Link to comment Share on other sites More sharing options...
Bert Posted October 16, 2008 Share Posted October 16, 2008 Yes, you can have a AutoIt program to do this. Look in the help file for _Timer_SetTimer. There is an example script there that will show you what you need. The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
jbennett Posted October 16, 2008 Author Share Posted October 16, 2008 I can't find _Timer_SetTimer in the helpfile? thanks Link to comment Share on other sites More sharing options...
Bert Posted October 16, 2008 Share Posted October 16, 2008 when you have the help file open, click on the index tab and you will find it in the list. expandcollapse popup#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include <WindowsConstants.au3> #include <GuiConstantsEx.au3> #include <Timers.au3> #include <GuiStatusBar.au3> #include <ProgressConstants.au3> Opt("MustDeclareVars", 1) Global $iMemo, $hStatusBar, $progress, $percent = 0, $direction = 1 _Example_CallBack() Func _Example_CallBack() Local $hGUI, $iTimerProgress, $btn_change, $iWait = 10, $btn_state Local $aParts[3] = [75, 330, -1] $hGUI = GUICreate("Timers Using CallBack Function(s)", 400, 320) $iMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, BitOR($WS_HSCROLL, $WS_VSCROLL)) GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New") $btn_state = GUICtrlCreateButton("Start Progress Bar", 70, 270, 100, 25) $btn_change = GUICtrlCreateButton("Change", 215, 270, 90, 25) GUICtrlSetState($btn_change, $GUI_DISABLE) $hStatusBar = _GUICtrlStatusBar_Create($hGUI, $aParts) _GUICtrlStatusBar_SetText($hStatusBar, "Timers") _GUICtrlStatusBar_SetText($hStatusBar, @TAB & @TAB & StringFormat("%02d:%02d:%02d", @HOUR, @MIN, @SEC), 2) $progress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) GUICtrlSetColor($progress, 0xff0000) _GUICtrlStatusBar_EmbedControl($hStatusBar, 1, GUICtrlGetHandle($progress)) GUISetState() _Timer_SetTimer($hGUI, 1000, "_UpdateStatusBarClock"); create timer While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $btn_state If GUICtrlRead($btn_state) = "Start Progress Bar" Then $iTimerProgress = _Timer_SetTimer($hGUI, $iWait, "_UpdateProgressBar"); create timer If @error Or $iTimerProgress = 0 Then ContinueLoop GUICtrlSetData($btn_state, "Stop Progress Bar") GUICtrlSetState($btn_change, $GUI_ENABLE) Else GUICtrlSetState($btn_change, $GUI_DISABLE) _Timer_KillTimer($hGUI, $iTimerProgress) GUICtrlSetData($btn_state, "Start Progress Bar") EndIf Case $btn_change If $iWait = 10 Then $iWait = 250 Else $iWait = 10 EndIf MemoWrite("Timer for _UpdateProgressBar set at: " & $iWait & " milliseconds") $iTimerProgress = _Timer_SetTimer($hGUI, $iWait, "", $iTimerProgress); reuse timer with different interval EndSwitch WEnd ConsoleWrite("Killed All Timers? " & _Timer_KillAllTimers($hGUI) & @LF) GUIDelete() EndFunc ;==>_Example_CallBack ; call back function Func _UpdateStatusBarClock($hWnd, $Msg, $iIDTimer, $dwTime) #forceref $hWnd, $Msg, $iIDTimer, $dwTime _GUICtrlStatusBar_SetText($hStatusBar, @TAB & @TAB & StringFormat("%02d:%02d:%02d", @HOUR, @MIN, @SEC), 2) EndFunc ;==>_UpdateStatusBarClock ; call back function Func _UpdateProgressBar($hWnd, $Msg, $iIDTimer, $dwTime) #forceref $hWnd, $Msg, $iIDTimer, $dwTime $percent += 5 * $direction GUICtrlSetData($progress, $percent) If $percent = 100 Or $percent = 0 Then $direction *= -1 If $percent = 100 Then GUICtrlSetColor($progress, 0xff0000) ElseIf $percent = 0 Then GUICtrlSetColor($progress, 0x0000ff) EndIf EndFunc ;==>_UpdateProgressBar ; Write a line to the memo control Func MemoWrite($sMessage) GUICtrlSetData($iMemo, $sMessage & @CRLF, 1) EndFunc ;==>MemoWrite The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
jbennett Posted October 16, 2008 Author Share Posted October 16, 2008 Hmm, Doesn't seem to exist in my AutoIT help file. Only downloaded it from the site yesterday, hmm The code you posted seems very long in length?. Is that the sort of code I need to produce to get a batch file to run at a certain time?. Ouch Thanks Link to comment Share on other sites More sharing options...
Bert Posted October 16, 2008 Share Posted October 16, 2008 No, you can cut out what you need. I'm confused as in why you can't find in the help file the command. What version of AutoIt are you running? The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
ResNullius Posted October 16, 2008 Share Posted October 16, 2008 (edited) No, you can cut out what you need. I'm confused as in why you can't find in the help file the command. What version of AutoIt are you running?jbenett may be opening the "AutoIt3.chm" file directly which does not contain the UDF info. "AutoIt.chm" on the other hand does (which is the link in the Start menu and what opens through "F1" in SciTE. Edited October 16, 2008 by ResNullius Link to comment Share on other sites More sharing options...
GEOSoft Posted October 16, 2008 Share Posted October 16, 2008 Hmm, Doesn't seem to exist in my AutoIT help file. Only downloaded it from the site yesterday, hmmThe code you posted seems very long in length?. Is that the sort of code I need to produce to get a batch file to run at a certain time?. OuchThankshttp://dundats.mvps.org/AutoIt/AutoIt3_Web...er_SetTimer.htm George Question about decompiling code? Read the decompiling FAQ and don't bother posting the question in the forums.Be sure to read and follow the forum rules. -AKA the AutoIt Reading and Comprehension Skills test.*** The PCRE (Regular Expression) ToolKit for AutoIT - (Updated Oct 20, 2011 ver:3.0.1.13) - Please update your current version before filing any bug reports. The installer now includes both 32 and 64 bit versions. No change in version number. Visit my Blog .. currently not active but it will soon be resplendent with news and views. Also please remove any links you may have to my website. it is soon to be closed and replaced with something else. "Old age and treachery will always overcome youth and skill!" Link to comment Share on other sites More sharing options...
AdmiralAlkex Posted October 16, 2008 Share Posted October 16, 2008 jbenett may be opening the "AutoIt3.chm" file directly which does not contain the UDF info. "AutoIt.chm" on the other hand does (which is the link in the Start menu and what opens through "F1" in SciTE.Don't forget AutoIt3Help.exe, it will also list UDF's .Some of my scripts: ShiftER, Codec-Control, Resolution switcher for HTC ShiftSome of my UDFs: SDL UDF, SetDefaultDllDirectories, Converting GDI+ Bitmap/Image to SDL Surface Link to comment Share on other sites More sharing options...
jbennett Posted October 16, 2008 Author Share Posted October 16, 2008 Thanks for the link to the _Timer_SetTimer information. I must say "ouch" this code is long and I have no idea what to cut out of it. Just trying to figure out whats required to ensure that at a specified time the timer will know that it should run a batch file. Ummm? Can anyone give me some ideas because it's really rattling my brains. Thanks Link to comment Share on other sites More sharing options...
SoulA Posted October 16, 2008 Share Posted October 16, 2008 (edited) This should work but I haven't really tested it thoroughly. #include <Date.au3> $time = "12:00AM" $batch = "C:\batch.bat" While 1 If StringTrimRight($time,2) = StringStripWS(StringTrimRight(_NowTime(), 6),8) _ AND StringRight($time, 2) = StringRight(_NowTime(), 2) Then Run($batch) Do ;nothing Until StringTrimRight($time,2) <> StringStripWS(StringTrimRight(_NowTime(), 6),8) ;so it only runs once in that minute WEnd Edited October 16, 2008 by SoulA 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