d_dwen
11-07-2016, 12:15
Добрый день!
Помогите разобраться со скриптом.
Цель - скрипт будет висеть в автозагрузке. Постоянно мониторить процесс (за пример взял калькулятор).
Если калькулятор запущен, то вырубать его.
Сам по себе вроде как работает, но разово. (т.е. когда сам его запускаю он вырубает процесс и все. но когда в автозагрузке ничего не происходит)
подскажите в чем проблема. Я, наверно, запарил в Do Loop
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
Set colServices = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'calc.exe'")
Do
Running = False
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objItem in colItems
If objItem.Name = "calc.exe" Then
Running = True
Exit For
End If
Next
If Not Running Then
WScript.Sleep 2000
Loop while Not Running
Dim oShell : Set oShell = CreateObject("WScript.Shell")
oShell.Run "taskkill /im calc.exe", , True
End If
Помогите разобраться со скриптом.
Цель - скрипт будет висеть в автозагрузке. Постоянно мониторить процесс (за пример взял калькулятор).
Если калькулятор запущен, то вырубать его.
Сам по себе вроде как работает, но разово. (т.е. когда сам его запускаю он вырубает процесс и все. но когда в автозагрузке ничего не происходит)
подскажите в чем проблема. Я, наверно, запарил в Do Loop
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
Set colServices = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'calc.exe'")
Do
Running = False
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objItem in colItems
If objItem.Name = "calc.exe" Then
Running = True
Exit For
End If
Next
If Not Running Then
WScript.Sleep 2000
Loop while Not Running
Dim oShell : Set oShell = CreateObject("WScript.Shell")
oShell.Run "taskkill /im calc.exe", , True
End If