Тема: VBS : Предотвращение повторного выполнения скрипта
Добрый день.
Точно помню, что эта (или очень похожая) тема уже поднималась, но не помню чем закончилась, и возможно даже в ней не было представлено решение.
Я пытался найти её на форуме, но не нашёл, поэтому пишу, вдруг кому пригодится.
Задача : Не допустить повторное выполнение скрипта, если он уже запущен и работает.
Решение :
Set PsWMI=GetObject("winmgmts:")
Set PsProcesses=PsWMI.ExecQuery("Select * From Win32_Process Where CommandLine Like '%" & Replace(WScript.ScriptFullName, "\", "\\") & "%'")
i = 0
For Each PsProcess in PsProcesses
i = i + 1
Next
If i <> 1 Then
WScript.Quit
End If
P.s.
Возможно данный метод также пригодится тем, кто хочет получить PID процесса запущенного скрипта.
Быть может спаяно железом лишь и кровью"…
Но мы попробуем спаять его любовью,-
А там увидим, что прочней… (Ф. Тютчев) Тут хорошая справка по vbs.