VBS/WSH/JS - [решено] зацикливание

Ответить
Аватара пользователя
D_e_n_n

VBS/WSH/JS - [решено] зацикливание

Сообщение D_e_n_n »

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











On Error Resume Next

Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")

send = "Вы запустили больше одной копии блокнота!!!"

dim a, b, c



a = 5 'каждые 5 минут



If Err.Number 0 Then

WScript.Echo Err.Number & ": " & Err.Description

WScript.Quit

End If



b=a*1000*60

wscript.sleep b



For Each objProc In objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")

i=i+1

if i>1 then

objProc.Terminate

end if

Next

msgbox send
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] зацикливание

Сообщение Iska »

Примерно так:
читать дальше »




Код:

Код: Выделить всё

Option Explicit
Const intPeriod = 5
Dim objSWbemServices
Dim objSWbemObjectEx
Dim i
Set objSWbemServices = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
Do
	i = 0
	For Each objSWbemObjectEx In objSWbemServices.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")
		i = i + 1
		if i > 1 Then
			objSWbemObjectEx.Terminate
		End if
	Next
	WScript.Sleep 1000 * 60 * intPeriod
Loop
Set objSWbemServices = Nothing
WScript.Quit



Только смысл? За пять минут в Блокноте можно много чего сделать. И есть более правильный способ: подписка на событие по «Win32_ProcessStartTrace».
Ответить

Вернуться в «Скриптовые языки администрирования Windows»