VBS Как элементарно убить процесс?
Листаю по инету и не могу разобраться, как элементарно просто, как в bat, завершить принудительно процесс на VBS?
|
Petya V4sechkin |
22-09-2012 18:15 1993154 |
Код:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
|
Подскажите, как заложить список процессов в приведённый скрипт, т.е. возможно ли завершить несколько процессов с разными именами?
|
Цитата:
Цитата Iska
Можно. У Вас их сколько? »
|
Два варианта: 2 и 5.
|
Тогда вполне сгодится простое перечисление:
Код:
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe' OR Name = 'calc.exe' OR Name = 'freecell.exe'")
и т.д.
|
Цитата:
Цитата Petya V4sechkin
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next »
|
Извиняюсь за некропост,специально зарегистрировался чтобы попросить помощи.
Мможно как то заставить данный скрипт циклично выполнятся в течении 60 секунд?
И есть ли возможность сделать так чтобы вместо цикличного выполнения можно было бы "промониторить" когда запустится процесс сразу же его закрыть и прекратить выполнение скрипта?
Спасибо за ответ
|
Цитата:
Цитата fisfer
Мможно как то заставить данный скрипт циклично выполнятся в течении 60 секунд? »
|
Можно, но зачем?!
Цитата:
Цитата fisfer
И есть ли возможность сделать так чтобы вместо цикличного выполнения можно было бы "промониторить" когда запустится процесс сразу же его закрыть и прекратить выполнение скрипта? »
|
Можно. Какой процесс? Каков полный путь к исполняемому файлу процесса?
|
Цитата:
Цитата Iska
Мможно как то заставить данный скрипт циклично выполнятся в течении 60 секунд? »
Можно, но зачем?!
Цитата fisfer:
И есть ли возможность сделать так чтобы вместо цикличного выполнения можно было бы "промониторить" когда запустится процесс сразу же его закрыть и прекратить выполнение скрипта? »
Можно. Какой процесс? Каков полный путь к исполняемому файлу процесса? »
|
Полный путь,путь в зависимости от ос может менятся
C:\Program Files\Elauncher2\game\binaries\x86\Elauncher2.exe
процесс Elauncher2.exe
а зациклить думал - так как это ехе запускается в течении секунд 20 гдето и его можно было бы так убивать,хотя и неправильно,но в силу моих знаний хочется решить хоть как нибудь эту задачу(
|
Цитата:
Цитата fisfer
Полный путь,путь в зависимости от ос может менятся »
|
Как именно?
|
Ну в 32 битной системе это C:\Program Files\Elauncher2\game\binaries\x86\Elauncher2.exe
а в 64 C:\Program Files (x86)\Elauncher2\game\binaries\x86\Elauncher2.exe
|
fisfer, попробуйте так:
Скрытый текст
Код:
Option Explicit
Dim objSWbemObjectEx
Dim strPath
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
For Each objSWbemObjectEx In .ExecQuery("SELECT AddressWidth FROM Win32_Processor")
With WScript.CreateObject("WScript.Shell")
If objSWbemObjectEx.AddressWidth = 64 Then
strPath = .ExpandEnvironmentStrings("%ProgramFiles(x86)%") & "\Elauncher2\game\binaries\x86\Elauncher2.exe"
Else
strPath = .ExpandEnvironmentStrings("%ProgramFiles%") & "\Elauncher2\game\binaries\x86\Elauncher2.exe"
End If
End With
Exit For
Next
If WScript.CreateObject("Scripting.FileSystemObject").FileExists(strPath) Then
.ExecNotificationQuery( _
"SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND " & _
"TargetInstance.ExecutablePath = '" & Replace(strPath, "\", "\\") & "'" _
).NextEvent.TargetInstance.Terminate
Else
WScript.Echo "Can't find file [" & strPath & "]."
WScript.Quit 1
End If
End With
WScript.Quit 0
|
Да,помоголо.Всё работает как часики.Большое вам человеческое спасибо!
|
Время: 10:48.
© OSzone.net 2001-