我正在尝试创建一个脚本,以在晚上8:00启动两个应用程序,并在晚上8:00停止它,并在停止时删除目录。 我现在无法对其进行测试,并且是AutoIt的新手,因此,如果有人对我的代码有任何建议或知道另一种方法(我尝试使用Task Manager调用批处理文件,但遇到了一些问题)。您的帮助,我将非常高兴! 我的想法是使此脚本成为exe文件,并与任务管理器一起安排在登录时启动,并在晚上8:00启动时启动两个应用程序(验证OS Arch)。我需要让该应用程序在8:00 AM停止,我正在考虑制作第二个脚本来完成该任务,但是如果可以仅使用一个脚本就更好了。
适用于x64或x86 Windows计算机。
FIRST SCRIP:
#include <Timers.au3>
#NoTrayIcon
#persistent
loop {
If (A_Hour = 20) and (A_Min = 00) { ; is time 8:00pm?
If @OSArch = "X64" Then
RunWait (C:\ProgramData\...\FirstApp.exe)
Run (C:\ProgramData\...\SecondApp.exe)
Elseif @OSArch = "X86" Then
RunWait (C:\ProgramData\...\FirstApp_x86.exe)
Run (C:\ProgramData\...\SecondApp_x86.exe)
EndIf
}
sleep, 1000 * 60 ; sleep for 60 seconds so only loop once per minute
}
return
SECOND SCRIPT:
#include <Timers.au3>
#NoTrayIcon
#persistent
loop {
if (A_Hour = 08) and (A_Min = 00) { ; is time 8:00am?
Run (@COMSPEC & "taskkill /F /IM FirstApp.exe", @SW_HIDE)
Run (@COMSPEC & "taskkill /F /IM SecondApp.exe", @SW_HIDE)
Run (@COMSPEC & "RMDIR C:\ProgramData\MyDir\ /S /Q", @SW_HIDE)
}
sleep, 1000 * 60 ; sleep for 60 seconds so only loop once per minute
}
return
答案 0 :(得分:0)
尝试将命令放入函数中。
#include <Misc.au3> ; needed for _Singleton
_Singleton(@ScriptName, 0) ; allows one one instance of running script
HotKeySet("{ESC}", _close) ; [optional to exit script]
Do
Sleep(20)
;waits for 8 AM
If @HOUR = "08" And @MIN = "00" And @SEC = "00" Then
one()
EndIf
;waits for 8 PM
If @HOUR = "20" And @MIN = "00" And @SEC = "00" Then
two()
EndIf
Until GUIGetMsg() = -3 ; $GUI_EVENT_CLOSE
Func one()
;Add the commmands you want executed at 8AM here
EndFunc ;==>one
Func two()
;Add the commmands you want executed at 8PM here
EndFunc ;==>two
Func _close()
Exit
EndFunc