Правильны ли следующие коды?Могу ли я сделать только один с этими двумя кодами? - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь создать скрипт для запуска двух приложений в 8:00 вечера и остановки его в 8:00 утра, удаляя каталог, когда он останавливается. Я не могу проверить это прямо сейчас, и я новичок в AutoIt, поэтому, если у кого-то есть какие-либо предложения к моему коду или есть другой способ сделать это (я пытался с помощью диспетчера задач вызывать пакетные файлы, но у меня были некоторые проблемы). Я буду очень счастлив с вашей помощью! Моя идея состоит в том, чтобы сделать этот скрипт exe и запланировать запуск диспетчера задач при входе в систему, и когда в 8 часов вечера он запустит два приложения (проверка ОС Arch). Мне нужно, чтобы это приложение остановилось в 8:00 утра, и я думаю сделать второй сценарий, чтобы сделать это, но если это можно сделать с помощью только одного сценария, будет лучше.

Это для машин с Windows, x64 или x86.

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 голосов
/ 11 июля 2019

Попробуйте поместить свои команды внутри функции.

#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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...