zcwight Posted February 9, 2016 Posted February 9, 2016 All I'm after is a script that will continuously check the time, and if a process starts before 5:00, then it will be killed straight away, if its after 5:00, then it is allowed to run. But on weekends the process is allowed to run at any time. A script that I could just modify to my needs would be nice, but if someone could point me to the Help File section that will do what I need, that would be better.
InunoTaishou Posted February 9, 2016 Posted February 9, 2016 You'll need to register when the process started. I know in powershell you can check when a process started and how long it's been running but idk how to get that data through autoit. I'd do something like a 2d array that holds the pid and the hour it started. Use ShellExecute, or Run, to start the process and get the PID of that process. You can use ProcessExists to check and see if the PID of the process is still running. Use ProcessClose to force close a program (idk what program you're talking about, there's probably a safer way to close your program that just killing in using ProcessClose)
kylomas Posted February 9, 2016 Posted February 9, 2016 zcwight, What is the start time to not allow a process to run? E.G. between 8:00AM and 5:00PM kylomas Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill
kylomas Posted February 9, 2016 Posted February 9, 2016 zcwight, In case you return to this thread here is a quick and dirty (and very simple) version of my understanding of your OP... #include <array.au3> #include <date.au3> ; test progs --------------------------------------------- Run(@ScriptDir & '\test1.exe') Run(@ScriptDir & '\test2.exe') ; test progs --------------------------------------------- Local $aProcessesToMonitor = [ _ 'test1.exe', _ 'test2.exe' _ ] Local $sStartHour = '08:00:00' Local $sEndHour = '17:00:00' While 1 If (@WDAY <> 7 And @WDAY <> 1) And ($sStartHour < StringRight(_NowCalc(), 8) And $sEndHour > StringRight(_NowCalc(), 8)) Then For $i = 0 To UBound($aProcessesToMonitor) - 1 $aTmp = ProcessList($aProcessesToMonitor[$i]) If @error Then ContinueLoop For $j = 1 To UBound($aTmp) - 1 ProcessClose($aTmp[$j][1]) ConsoleWrite('Closing ' & $aTmp[$j][0] & '[' & $aTmp[$j][1] & ']' & @CRLF) Next Next EndIf Sleep(1000) WEnd kylomas Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill
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