Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Нужна помощь со скриптом на повторный запуск приложения (http://forum.oszone.net/showthread.php?t=250499)

Derus 03-01-2013 10:36 2057979

Нужна помощь со скриптом на повторный запуск приложения
 
Нужна помощь со скриптом
Всех с новым годом
Win 2003x32
И так у меня есть одна программа (NOD32view)которая всё время должна быть запущена и работать
Но почему то она через какое-то время сама закрывается
Нужен скрипт который будет запускать эту программу заново если программа сама закроется
Может чтоб скрипт наблюдал в процессах (мониторинг)как только программы там нет он её запускал
Такой скрипт или команду Bat реально сделать или нет
Очень нужно

zion87 03-01-2013 14:03 2058081

В одной из тем Petya V4sechkin, предложил решение
bat
Код:

@Echo Off
SetLocal EnableExtensions

Set ProcessName=notepad.exe
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%"
If %ErrorLevel% NEQ 0 Start %windir%\%ProcessName%

vbs
Код:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

Set colProcesses = objWMIService.ExecQuery( _
    "Select Name From Win32_Process " _
    & "Where Name = 'notepad.exe'")

If colProcesses.Count = 0 Then
  Set objShell = Wscript.CreateObject("Wscript.Shell")
  objShell.Run "notepad.exe"
End If


Derus 03-01-2013 14:16 2058090

zion87,
Можно поточнее я не понял, как он будет запускать приложение если то само закроется
Вот на этих примерах приложение запускается но если я его закрываю то оно само по себе не запускается
Может я что то упустил

допустим у меня путь C:\NOD32view\NOD32view.exe

Derus 03-01-2013 14:34 2058102


вот что пишет
http://forum.oszone.net/attachment.p...2&d=1357208863

Derus 03-01-2013 14:45 2058112

а как сделать чтоб не бежала постоянно строка может время повторного запуска поменять

Derus 03-01-2013 15:06 2058121

а куда его добавить, чтоб было правильно
у меня с час происходит следующие
в командной строке быстро бегут строки NOD32view.exe с большой скоростью о они не заканчиваются
можно чтоб скорость этих строк была меньше хотя б 1 шт в минуту

zion87 03-01-2013 15:10 2058123

Код:

@Echo Off
SetLocal EnableExtensions
Set put=C:\NOD32view
Set ProcessName=NOD32view.exe
:1
cls
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%"
If %ErrorLevel% NEQ 0 Start %put%\%ProcessName%
ping -n 50 127.0.0.1 >NUL
goto :1


Derus 03-01-2013 15:14 2058126

Отлично спасибо
А реально чтоб ещё окно командной строки на показывалось на экране а только в диспетчере задач процесс этот был

Я его потом скомпилирую с бат в exe файл и добавлю в
автозагрузку или в активные процессы

zion87 03-01-2013 15:15 2058127

СПАСИБО МНОГО, а отметить сообщение полезным в самый раз!!!

для скрытого запуска нужно было изначально использовать vbs, теперь могу предложить такой вариант
первый файл process.bat
Код:

@Echo Off
SetLocal EnableExtensions
Set put=C:\NOD32view
Set ProcessName=NOD32view.exe
:1
cls
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%"
If %ErrorLevel% NEQ 0 Start %put%\%ProcessName%
ping -n 50 127.0.0.1 >NUL
goto :1

и второй
start.vbs для скрытого запуска первого вот с таким содержанием
Код:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c process.bat", 0, false

в итоге остается просто запустить start.vbs(желательно чтобы оба файла лежали в одной папке)


ЕСЛИ КОМПИЛИРОВАТЬ В EXE ТО МОЖНО СДЕЛАТЬ ПРИЛОЖЕНИЕ СКРЫТЫМ В КОМПИЛЯТОРЕ Quick Batch File Compiler И НИКАКИХ ПРОЧИХ ФАЙЛОВ НЕ ПОНАДОБИТЬСЯ

Black_Raven_ 24-01-2014 15:09 2295326

здравствуйте, мне тоже нужно запускать программу после ее автоматического завершения, но я совершенно не разбираюсь в этих скриптах, не могли бы вы написать пошаговую инструкцию как и что сделать, что куда писать, копировать, запускать, заранее спасибо

Iska 24-01-2014 15:22 2295336

1. Приведите точный путь к приложению, и его командную строку.
2. Как понимать «ее автоматического завершения»?

Black_Raven_ 02-02-2014 10:15 2301051

1. C:\Program Files\Zona\Zona.exe
2. она сама закрывается по неизвестным причинам

Iska 02-02-2014 11:13 2301085

Цитата:

Цитата Black_Raven_
1. C:\Program Files\Zona\Zona.exe »

На WSH:
Код:

Option Explicit

Dim strFile

Dim collSWbemObjectSet


strFile = "C:\Program Files\Zona\Zona.exe"

With WScript.CreateObject("Scripting.FileSystemObject")
        If .FileExists(strFile) Then
                Set collSWbemObjectSet = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").ExecNotificationQuery( _
                        "SELECT * FROM __InstanceDeletionEvent WITHIN 1 " & _
                        "WHERE TargetInstance ISA 'Win32_Process' " & _
                        "AND TargetInstance.ExecutablePath = '" & Replace(strFile, "\", "\\") & "'" _
                )
               
                Do
                        collSWbemObjectSet.NextEvent
                        WScript.CreateObject("WScript.Shell").Run """" & strFile & """"
                Loop
               
                Set collSWbemObjectSet = Nothing
        Else
                WScript.Echo "Can't find file [" & strFile & "]."
                WScript.Quit 1
        End If
End With

WScript.Quit 0

Цитата:

Цитата Black_Raven_
2. она сама закрывается по неизвестным причинам »

Крайне рекомендуется вместо использования скрипта исследовать, найти и ликвидировать эти причины.

Black_Raven_ 05-02-2014 05:22 2302950

спасибо за код, только я в этом совсем не разбираюсь, а можете написать подробнее что и как сделать, что куда скопировать, что запустить, заранее благодарен

Iska 05-02-2014 10:40 2303018

Скопируйте вышеприведённый код. Сохраните в файл с расширением «.vbs» и запустите его.

omegastripes 05-02-2014 23:11 2303631

Приведенные ниже скрипты будут перезапускать определенную программу, как только она будет закрыта. В качестве примера используется C:\Windows\notepad.exe. Этот путь в тексте скрипта нужно заменить на свой, кавычки не трогать. Итак, неубиваемый блокнот :) :

Версия VBscript. Поместить этот код в текстовый файл и сохранить с расширением .vbs
Код:

Do: CreateObject("WScript.Shell").Run """C:\Windows\notepad.exe""", , True: Loop
Версия BAT или CMD (точнее это VBS, "завернутый" в BAT или CMD). Поместить этот код в текстовый файл и сохранить с расширением .bat или .cmd
Код:

' & start "" wscript /e:vbscript "%~dpf0"
Do: CreateObject("WScript.Shell").Run """C:\Windows\notepad.exe""", , True: Loop

Для остановки скрипта в диспетчере задач завершить процесс wscript.exe

Источники:
http://forum.script-coding.com/viewtopic.php?id=6519
http://ss64.com/nt/start.html

Black_Raven_ 08-02-2014 15:02 2305478

всем откликнувшимся огромное спасибо, все работает, все здорово, спасибо что написали как остановить его:)


Время: 15:55.

Время: 15:55.
© OSzone.net 2001-