RipVanWinkel
Новичок
- Сообщения
- 81
- Репутация
- 0
Здравствуйте, форумчане.
Я обращаюсь к вам за помощью.
Есть скрипт, который следит за запуском программ. И конкретной запущенной программе - сопоставляет конкретный скрипт и тут же запускает его.
Но есть ряд неудобств.
Часто бывает, когда несколько разных окон - имеют один и тот же процесс.
Также тяжело прописывать адреса скриптов - в строку, поскольку их слишком много (слишком длинная получается строка). И намного удобнее брать адреса запускаемых скриптов из txt.
В связи с этим возникает два вопроса.
Как формировать массив
- не в строке кода, а брать его из txt ?
Как заставить скрипт реагировать не на названия процессов, а на наличие конкретного слова внутри Title ?
Скрипт сейчас выглядит так:
Список адресов в txt - такой:
calc.exe
F:\-склад команд\1.au3
cmd.exe
F:\-склад команд\2.au3
notepad.exe
F:\-склад команд\2.au3
Я обращаюсь к вам за помощью.
Есть скрипт, который следит за запуском программ. И конкретной запущенной программе - сопоставляет конкретный скрипт и тут же запускает его.
Но есть ряд неудобств.
Часто бывает, когда несколько разных окон - имеют один и тот же процесс.
Также тяжело прописывать адреса скриптов - в строку, поскольку их слишком много (слишком длинная получается строка). И намного удобнее брать адреса запускаемых скриптов из txt.
В связи с этим возникает два вопроса.
Как формировать массив
Код:
Global $aProgs[][] = [['calc.exe', 0, 'F:\-склад команд\1.au3'], ['cmd.exe', 0, 'F:\-склад команд\2.au3'], ['notepad.exe', 0, 'F:\-склад команд\2.au3']]
- не в строке кода, а брать его из txt ?
Как заставить скрипт реагировать не на названия процессов, а на наличие конкретного слова внутри Title ?
Скрипт сейчас выглядит так:
Код:
#include <file.au3>
Global $aProgs[][] = [['calc.exe', 0, 'F:\-склад команд\1.au3'], ['cmd.exe', 0, 'F:\-склад команд\2.au3'], ['notepad.exe', 0, 'F:\-склад команд\2.au3']]
While Sleep(10)
For $i = 0 To UBound($aProgs) - 1
If $aProgs[$i][1] = 0 And ProcessExists($aProgs[$i][0]) Then
$aProgs[$i][1] = 1
_Action($aProgs[$i][2])
ElseIf $aProgs[$i][1] = 1 And Not ProcessExists($aProgs[$i][0]) Then
$aProgs[$i][1] = 0
EndIf
Next
WEnd
Func _Action($sProg)
;MsgBox(64, @ScriptName, $sProg)
ShellExecute($sProg)
EndFunc
Список адресов в txt - такой:
calc.exe
F:\-склад команд\1.au3
cmd.exe
F:\-склад команд\2.au3
notepad.exe
F:\-склад команд\2.au3