Здравствуйте.
Есть программа, при запуске которой, запускаются еще 6 процессов.
Пытаюсь написать скрипт для автоматизации нажатий на кнопки в этой программе.
Нужно при запуске скрипта проверять: не запущен ли какой-либо из процессов в списке и если запущен хоть один, то убить его и запустить программу по-новой.
Это нужно для избежания того, если программа уже будет запущена после запуска скрипта.
Сделал для проверки одного процесса, а как сделать проверку на все процессы?
Решено:
Есть программа, при запуске которой, запускаются еще 6 процессов.
Пытаюсь написать скрипт для автоматизации нажатий на кнопки в этой программе.
Нужно при запуске скрипта проверять: не запущен ли какой-либо из процессов в списке и если запущен хоть один, то убить его и запустить программу по-новой.
Это нужно для избежания того, если программа уже будет запущена после запуска скрипта.
Сделал для проверки одного процесса, а как сделать проверку на все процессы?
Код:
Func LaunchCMS($script)
If CMSIsRunning() Then
if KillCMS() = False then
MsgBox(64,$Title,"Не удалось завершить процесс: "&$exeFile& @CRLF&@CRLF&"Попробуйте завершить процесс вручную и запустите скрипт снова")
Exit
EndIf
EndIf
Run($sPath & " " &'"'& $etc & $FilesToEtc[$script]&'"')
Sleep(1000)
if CMSisRunning() = False Then
MsgBox(64,$Title,"Не удалось запустить CMS Supervisor?"&@CRLF&"Попробуйте еще раз.")
Exit
EndIf
EndFunc
Func CMSIsRunning()
;;;
; Возвращает True если CMS запущен, иначе False.
;;;
$process = ProcessExists($exeFile)
If $process Then
Return True
EndIf
Return False
EndFunc
Func KillCMS()
;;;
; Убивает CMS. Если он успешно убит (или более не найден), возвращает True.
;;;
If CMSIsRunning() Then
ProcessClose($exeFile)
Sleep(1000)
If Not CMSIsRunning() Then
Return True
EndIf
EndIf
Return False
EndFunc
Сообщение автоматически объединено:
Решено:
Код:
Func LaunchCMS($script)
If CMSIsRunning() Then
if KillCMS() = False then
MsgBox(64,$Title,"Не удалось завершить процесс: "&$exeFile& @CRLF&@CRLF&"Попробуйте завершить процесс вручную и запустите скрипт снова")
Exit
EndIf
EndIf
Run($sPath & " " &'"'& $etc & $FilesToEtc[$script]&'"')
Sleep(1000)
if CMSisRunning() = False Then
MsgBox(64,$Title,"Не удалось запустить CMS Supervisor?"&@CRLF&"Попробуйте еще раз.")
Exit
EndIf
EndFunc
Func KillCMS()
;;;
; Убивает CMS. Если он успешно убит (или более не найден), возвращает True.
;;;
If CMSIsRunning() Then
For $vElement In $CMSProc
If ProcessExists($vElement) Then
ProcessClose($vElement)
EndIf
Next
Sleep(1000)
If Not CMSIsRunning() Then
Return True
EndIf
EndIf
Return False
EndFunc
Func CMSIsRunning()
;;;
; Возвращает True если CMS запущен, иначе False.
;;;
Local $exist=0
For $vElement In $CMSProc
If ProcessExists($vElement) Then
$exist+=1
EndIf
Next
If $exist == 0 Then
Return False
Else
Return True
EndIf
EndFunc
Последнее редактирование: