PDA

Показать полную графическую версию : [решено] VBS Как элементарно убить процесс?


Startup
22-09-2012, 17:47
Листаю по инету и не могу разобраться, как элементарно просто, как в bat, завершить принудительно процесс на VBS?

Petya V4sechkin
22-09-2012, 18:15
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

Lucretius
21-11-2013, 20:21
Цитировать » Подскажите, как заложить список процессов в приведённый скрипт, т.е. возможно ли завершить несколько процессов с разными именами?

Iska
21-11-2013, 21:25
Можно. У Вас их сколько?

Lucretius
21-11-2013, 21:30
Можно. У Вас их сколько? »
Два варианта: 2 и 5.

Iska
21-11-2013, 21:52
Тогда вполне сгодится простое перечисление:
Set colProcessList = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe' OR Name = 'calc.exe' OR Name = 'freecell.exe'")

и т.д.

fisfer
02-11-2018, 18:12
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 секунд?

И есть ли возможность сделать так чтобы вместо цикличного выполнения можно было бы "промониторить" когда запустится процесс сразу же его закрыть и прекратить выполнение скрипта?

Спасибо за ответ

Iska
02-11-2018, 18:32
Мможно как то заставить данный скрипт циклично выполнятся в течении 60 секунд? »
Можно, но зачем?!

И есть ли возможность сделать так чтобы вместо цикличного выполнения можно было бы "промониторить" когда запустится процесс сразу же его закрыть и прекратить выполнение скрипта? »
Можно. Какой процесс? Каков полный путь к исполняемому файлу процесса?

fisfer
02-11-2018, 18:42
Мможно как то заставить данный скрипт циклично выполнятся в течении 60 секунд? »
Можно, но зачем?!
Цитата fisfer:
И есть ли возможность сделать так чтобы вместо цикличного выполнения можно было бы "промониторить" когда запустится процесс сразу же его закрыть и прекратить выполнение скрипта? »
Можно. Какой процесс? Каков полный путь к исполняемому файлу процесса? »

Полный путь,путь в зависимости от ос может менятся
C:\Program Files\Elauncher2\game\binaries\x86\Elauncher2.exe

процесс Elauncher2.exe

а зациклить думал - так как это ехе запускается в течении секунд 20 гдето и его можно было бы так убивать,хотя и неправильно,но в силу моих знаний хочется решить хоть как нибудь эту задачу(

Iska
02-11-2018, 19:18
Полный путь,путь в зависимости от ос может менятся »
Как именно?

fisfer
02-11-2018, 19:23
Как именно? »

Ну в 32 битной системе это C:\Program Files\Elauncher2\game\binaries\x86\Elauncher2.exe
а в 64 C:\Program Files (x86)\Elauncher2\game\binaries\x86\Elauncher2.exe

Iska
02-11-2018, 19:56
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

fisfer
02-11-2018, 20:31
Да,помоголо.Всё работает как часики.Большое вам человеческое спасибо!




© OSzone.net 2001-2012