以下代码正确吗?我能用这两个代码做一个吗?

时间:2019-07-09 23:57:43

标签: autoit

我正在尝试创建一个脚本,以在晚上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

1 个答案:

答案 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