Что нового

Помогите с авто проверкой процессов

Sansan222rus

Новичок
Сообщения
2
Репутация
0
Не могу понять что делаю не так
Задача токова нужно чтобы скрипт проверял если запущен один из proccesed то закрывал программу
Код:
WHILE TRUE
$aProc[3] = ["proccesed1.exe", "proccesed2.exe", "proccesed3.exe", и тд]
For $vElement In $aProc
    IF PROCESSEXISTS($vElement) THEN
        PROCESSCLOSE("other.exe")
        SLEEP(2000)
    ENDIF
WEND


В таком виде скрипт работает

Код:
WHILE TRUE
    IF PROCESSEXISTS("proccesed.exe") THEN
        PROCESSCLOSE("other.exe")
        SLEEP(2000)
    ENDIF
WEND

Сообщение автоматически объединено:

Тоесть если открыт любой из
"proccesed1.exe", "proccesed2.exe", "proccesed3.exe", и тд]
скрипт закрывает программу
other.exe
 

xXx

╚{■_■}╗
Меценат
Сообщения
248
Репутация
95
Ошибка синтаксиса: "Next" забыли.
В SciTE сочетание клавиш Ctrl+F5 вам покажет это.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
1. Массив создаётся только через Global, Local или Dim
2. Цикл For должен заканчиваться Next
 
Автор
S

Sansan222rus

Новичок
Сообщения
2
Репутация
0
Код:
Local $aProc[3] = ['1.exe', '1.exe', '1.exe']
For $vElement In $aProc
    If ProcessExists($vElement) Then
        PROCESSCLOSE("systemcontroller.exe")
        SLEEP(2000)
     ELSE
        IF PROCESSEXISTS("systemcontroller.exe") THEN
            SLEEP(1000)
        ELSE
            RUN("systemcontroller.exe", "", @SW_HIDE)
        ENDIF
    ENDIF
Next

СДЕЛАЛ ТАК Ctrl+F5 ОШИБОК НЕТ ЗАПУСК РАБОТАЕТ. А НУЖНО ЧТОБЫ ПРИ ОТКРЫТИИ ЛЮБОЙ ИЗ ПРОГРАММ ПРОЦЕСС systemcontroller.exe ЗАКРЫВАЛСЯ
Сообщение автоматически объединено:

Уже 2 часа не могу понять как сделать вроде все правильно а скрипт не работает как нужно
Сообщение автоматически объединено:

Ошибка синтаксиса: "Next" забыли.
В SciTE сочетание клавиш Ctrl+F5 вам покажет это.
Исправил но как надо не работает
 

IMStrelcov

CTPEJIbLLOB
Сообщения
253
Репутация
64
Код:
Global $aProc[3] = ["proccesed1.exe", "proccesed2.exe", "proccesed3.exe"]
While True
   For $vElement In $aProc
    If ProcessExists($vElement) Then
        ProcessClose("other.exe")
        Sleep(2000)
     EndIf
  Next
WEnd

или
Код:
$sProcessList = "process1.exe,process2.exe,ghjwtcc3.exe,и т.д."
$sProcessList = StringSplit($sProcessList, ',')
While True
   For $iA = 1 To $sProcessList[0]
      If ProcessExists($sProcessList[$iA]) Then
         ProcessClose("other.exe")
         Sleep(2000)
      EndIf
   Next
WEnd
 
Верх