Что нового

[Автоматизация] Проверка Запущен ли процесс, и его запуск

Dzot

Новичок
Сообщения
15
Репутация
1
Необходимо узнать запущен ли процесс ( использую ProcessExists("qip.exe") )
Если не запущен - запустить.
Если запущен - продолжить выполнение скрипта.
Вот что имею:
Код:
HotKeySet("^!x", "MyExit")
$superpass = '***'
While 1
    $i  = InputBox('Super script', 'Введите пароль', '', '*')
    If StringCompare($i, $superpass) = 0 Then
        MsgBox(0, '', 'Пароль верен ---> Run.')
        ExitLoop
    Else
		Exit
    EndIf
WEnd

If ProcessExists("qip.exe") Then
   Run ( "E:\My Folder\проги\Qip\qip.exe", "@SW_HIDE" )
   WinWait ( "QIP - Спокойное общение!")
   WinActivate ( "QIP - Спокойное общение!")
   WinWaitActive ( "QIP - Спокойное общение!")
   Send ( "+{TAB}" )
   Send ( "***" )
   Send ( "{TAB}" )
   Send ( "***" )
   Send ( "{ENTER}" )
EndIf

If ProcessExists("magent.exe") Then
   Run ( "E:\My Folder\проги\MailAgent\magent.exe", "@SW_HIDE" )
   WinWait ( "Авторизация пользователя" )
   WinActivate ( "Авторизация пользователя" )
   WinWaitActive ( "Авторизация пользователя" )
   Send ( "+{TAB 2}" )
   Send ( "***" )
   Send ( "{TAB  2}" )
   Send ( "***" )
   Send ( "{ENTER}" )
EndIf

If ProcessExists("Skype.exe") Then
   Run ( "C:\Program Files\Skype\Phone\Skype.exe", "@SW_HIDE" )
   WinWait ( "Skype" )
   WinActivate ( "Skype" )
   WinWaitActive ( "Skype" )
   Send ( "***" )
   Send ( "{TAB}" )
   Send ( "***" )
   Send ( "{ENTER}" )
EndIf

Func MyExit()
    Exit 
EndFunc

Но Выполнение идет если приложение уже запущено. Как сделать правильно - не понял. В английском не силен - иностранные справки не катят. В русской толком не написано.

Подтолкните в нужную сторону пожалуста. Заранее благодарен.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Примерчик:
Код:
If ProcessExists("qip.exe") Then
    MsgBox(64, "Инфо", "Qip уже запущен")
Else
	MsgBox(48, "Инфо", "Qip не запущен")

EndIf


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

Конкретнее:
Код:
If ProcessExists("qip.exe") Then
        MsgBox(64, "Инфо", "Qip уже запущен")
Else
	Run ( "E:\My Folder\проги\Qip\qip.exe", "@SW_HIDE" )
EndIf
 
Автор
D

Dzot

Новичок
Сообщения
15
Репутация
1
Код:
If ProcessExists("qip.exe") Then
        MsgBox(64, "Инфо", "Qip уже запущен")
       ;Сообщение выводить не надо. Нужно перейти к следующиму куски скрипте - к запуску агента
Else
   Run ( "E:\My Folder\проги\Qip\qip.exe", "@SW_HIDE" )
EndIf


Что мне прописать вместо MsgBox? если оставить пустое место - скрипт тупо зависает на этом участке.
Думаю как вариант сунуть туда запуск агента, а в агенте туда сунуть скайп и тд... Но что то не нравиться мне такая многоступенчатость
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Примерчик:
Код:
If ProcessExists("qip.exe") Then
	Call("Agent")
EndIf

Func Agent()
    MsgBox(64, "Агент", "Типа Агент запустился")
EndFunc



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

Извини, но не понял пока как подсветку кода тут делать.
Конкретнее:

Код:
If ProcessExists("qip.exe") Then
	Call("Agent")
EndIf

Func Agent()
	Run ( "E:\My Folder\проги\MailAgent\magent.exe", "@SW_HIDE" )
   WinWait ( "Авторизация пользователя" )
   WinActivate ( "Авторизация пользователя" )
   WinWaitActive ( "Авторизация пользователя" )
   Send ( "+{TAB 2}" )
   Send ( "***" )
   Send ( "{TAB  2}" )
   Send ( "***" )
   Send ( "{ENTER}" )
EndFunc
 

TheBloodTear

Знающий
Сообщения
36
Репутация
9
Вот выдержка из старой русской справки:

ProcessExists ( "process")

Возвращаемое значение:
Значение 1 означает наличие процесса, иначе 0.

Сейчас возвращается PID процесса, но он тоже не может быть 0 ;)..

Поэтому:
Код:
If ProcessExists("qip.exe") = 0 Then
   ;запускай кип..
EndIf
 
Автор
D

Dzot

Новичок
Сообщения
15
Репутация
1
Код:
If ProcessExists("qip.exe") = 0 Then
   ;запускай кип..
EndIf


скрипт тупо зависает
А все. разобрался. Спасибо )
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Код:
If Not ProcessExists("proga.exe") Then
	Run("proga.exe")
EndIf
Так тоже можно.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
OffTopic:
какие-то зубодробительные скрипты вы пишете, ребята :D



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

http://autoit-script.ru/index.php?topic=1128.0
 
Верх