Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Запрет на повторный запуск процесса

Ответить
Настройки темы
VBS/WSH/JS - [решено] Запрет на повторный запуск процесса

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: sergeypele
Дата: 29-04-2013
Добрый день, помогите плиз.
есть такой скрипт Нужно чтобы отслеживал процесс, если запущен, то запрещал повторный запуск
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")

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

If colProcesses.Count = 0 Then
Set objShell = Wscript.CreateObject("Wscript.Shell")
Set objEnv = objShell.Environment("Process")
objShell.Run """" + objEnv("") + "cashserv.exe"""
Else
MsgBox "Программы уже запущена. Для перезапуска закройте ее.", 48, "Внимание"
End If

Отправлено: 16:23, 29-04-2013

 

Старожил


Сообщения: 210
Благодарности: 76

Профиль | Отправить PM | Цитировать


Пример сценария, который позволяет запускать указанный процесс либо в количестве, не большем, чем количество таких процессов на момент запуска сценария, либо в единственном экземпляре.
читать дальше »
Код: Выделить весь код
Dim objWMI, objCollection, objItem
Dim strComputer, strProcess, intLimit
Dim objDict, strHandle, strTemp

strComputer = "."
strProcess = "myprocess.exe"
Set objDict = CreateObject("Scripting.Dictionary")
Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objCollection = objWMI.ExecQuery("SELECT Handle FROM Win32_Process WHERE Name='" & strProcess & "'")
If objCollection.Count = 0 Then
    intLimit = 1
Else
    For Each objItem In objCollection
        objDict.Add objItem.Handle, True
    Next
    intLimit = objDict.Count
End If
Set objCollection = objWMI.ExecNotificationQuery("SELECT * FROM __InstanceOperationEvent " _
        & "WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name='" & strProcess & "'")
On Error Resume Next
Do
    Set objItem = objCollection.NextEvent
    Select Case objItem.Path_.Class
        Case "__InstanceCreationEvent"
            strTemp = objItem.TargetInstance.Handle
            If objDict.Count < intLimit Then
                objDict.Add strTemp, True
            Else
                objWMI.Get("Win32_Process.Handle='" & strTemp & "'").Terminate
                If Err.Number <> 0 Then Err.Clear
            End If
        Case "__InstanceDeletionEvent"
            strTemp = objItem.TargetInstance.Handle
            If objDict.Exists(strTemp) Then
                objDict.Remove strTemp
            End If
    End Select
Loop
Set objItem = Nothing
Set objCollection = Nothing
Set objWMI = Nothing
Set objDict = Nothing
WScript.Quit 0

Последний раз редактировалось DmitriiV, 30-04-2013 в 13:05.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:55, 30-04-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо огромное, то что надо!!!!

Отправлено: 14:10, 06-05-2013 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Запрет на повторный запуск процесса

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Нужна помощь со скриптом на повторный запуск приложения Derus Скриптовые языки администрирования Windows 16 08-02-2014 15:02
CMD/BAT - [решено] Мониторинг процесса, в случаи его отсутствия повторный запуск. dvassilyev Скриптовые языки администрирования Windows 2 06-12-2012 12:42
[решено] Предотвратить повторный запуск w3d1 AutoIt 4 19-09-2009 01:15
[решено] Нужен повторный запуск!!! Str_ani_ck AutoIt 2 08-08-2009 16:18
RunOnceEx (запрет на запуск процесса) kudanax Автоматическая установка Windows 2000/XP/2003 6 14-08-2008 18:41




 
Переход