RE:listado de procesos windows
Hola.
Hace un tiempo lo hice de dos maneras
esta es en Vbscrip saque datos de la MSN Library
Espero que te ayude
Saludos desde Argentina. !!!!
------------------------------------------------------------------------------------------------
Scrip para ver los procesos activos
tengo toda una aplicacion hecha por ello
van algunas lineas que seguro sabras obviar.
He matado procesos dentro de una Wan
----------------------------------------------------------------------------------------------------
If This.Text ="Mostrar Procesos" Then
This.Text ="Ocultar Procesos"
mle_1.Visible=true
cb_kill.Enabled=True
SetPointer ( HourGlass!)
OleObject mssc
int li_rc
String ls_code
Any res
String Computer
Int Estado
Computer = '"'+Trim(sle_1.Text)+'"'
//Open(w_wait)
mssc = CREATE OleObject
li_rc = mssc.ConnectToNewObject( "MSScriptControl.ScriptControl" )
mssc.language = "VBScript"
ls_code = "function services() ~r~n" + &
"strComputer=~".~"~r~n" + &
"Set objWMIService = GetObject(~"winmgmts:~"" + &
"& ~"{impersonationLevel=impersonate}!\~"" +&
" & "+Computer+" & ~"
ootcimv2~")~r~n" +&
"Set colProcesses = objWMIService.ExecQuery(" + &
"~"select * from win32_process~" )~r~n" + &
"s = ~"~"~r~n" + &
"For Each objProcess In colProcesses~r~n" + &
" s = s & objProcess.Name & vbCr~r~n" + &
"Next~r~n" + &
"services = s~r~n" + &
"end function"
// MessageBox("Code","" + String(ls_Code))
mssc.AddCode(ls_code)
If Isnull(mssc.Eval("services()")) = True Then
MessageBox("Nulo","")
Goto finkill
Else
Res = mssc.Eval("services()")
End if
String Replace
String Find
long Start_pos =1
Find = CharA(13)
Replace = "~r~n"
start_pos = PosA(Res,Find,Start_Pos)
DO WHILE start_pos > 0
// Replace old_str with new_str.
Res = ReplaceA(Res, start_pos,LenA(find),Replace)
// Find the next occurrence of old_str.
start_pos = PosA(Res, Find,start_pos+LenA(Replace))
LOOP
mle_1.Text=String(res)
Procesos_Activos=String(res)
mssc.DisconnectObject()
DESTROY mssc
p_1.Visible=True
p_2.Visible=True
Else
mle_1.Visible=False
This.Text ="Mostrar Procesos"
cb_kill.Enabled=False
sle_kill.Text=""
End if
finkill:
---------------------------------------------------------------------------
---------------------------------------------------------------------------
Scrip Para matar el Proceso (mata por ej todos los notepad habietos)
OleObject mssc
int li_rc
string ls_code
long i
String Kill
String Terminate
Any res
String Computer
Int Estado
Computer = '"'+Trim(sle_1.Text)+'"'
Kill = "'" + Trim(sle_kill.Text) +".exe"+"'"
Terminate =Trim(sle_kill.Text)
If IsNull(kill) = False Then
mssc = CREATE OleObject
li_rc = mssc.ConnectToNewObject( "MSScriptControl.ScriptControl" )
mssc.language = "VBScript"
// Scrip de msdn Library
//strComputer = "FullComputerName"
//strDomain = "DOMAIN"
//strUser = InputBox("Enter user name")
//strPassword = InputBox("Enter password")
//Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
//Set objWMIService = objSWbemLocator.ConnectServer(strComputer, _
// "rootCIMV2", _
// strUser, _
// strPassword, _
// "MS_409", _
// "ntlmdomain:" + strDomain)
//Set colProcessList = objWMIService.ExecQuery _
// ("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")
//For Each objProcess in colProcessList
// objProcess.Terminate()
//Next
ls_code = "function killaplicaciones() ~r~n" + &
"Set locator = CreateObject(~"WbemScripting.SWbemLocator~")~r~n" + &
"Set service = locator.ConnectServer("+Computer+")~r~n" + &
"Set props = service.ExecQuery" + &
"(~"select name, description from Win32_Process where name ="+kill+"~")~r~n" + &
"num = props.count~r~n" + &
"for each "+Terminate+" in props~r~n " + &
""+Terminate+".terminate ~r~n " + &
"next~r~n" + &
"killaplicaciones = num~r~n" + &
"end function"
// messagebox("", ls_code)
mssc.AddCode(ls_code)
i = mssc.Eval("killaplicaciones()")
Messagebox("Destructor ",+ "Se aniquilaron :"+ string(i) + " Trabajos")
mssc.DisconnectObject()
DESTROY mssc
p_1.Visible=False
p_2.Visible=False
//Refreshh de la INF
SetPointer ( HourGlass!)
mssc = CREATE OleObject
li_rc = mssc.ConnectToNewObject( "MSScriptControl.ScriptControl" )
mssc.language = "VBScript"
ls_code = "function services() ~r~n" + &
"strComputer=~".~"~r~n" + &
"Set objWMIService = GetObject(~"winmgmts:~"" + &
"& ~"{impersonationLevel=impersonate}!\~"" +&
" & "+Computer+" & ~"
ootcimv2~")~r~n" +&
"Set colProcesses = objWMIService.ExecQuery(" + &
"~"select * from win32_process~" )~r~n" + &
"s = ~"~"~r~n" + &
"For Each objProcess In colProcesses~r~n" + &
" s = s & objProcess.Name & vbCr~r~n" + &
"Next~r~n" + &
"services = s~r~n" + &
"end function"
mssc.AddCode(ls_code)
Res = mssc.Eval("services()")
String Replace
String Find
long Start_pos =1
Find = CharA(13)
Replace = "~r~n"
start_pos = PosA(Res,Find,Start_Pos)
DO WHILE start_pos > 0
// Replace old_str with new_str.
Res = ReplaceA(Res, start_pos,LenA(find),Replace)
// Find the next occurrence of old_str.
start_pos = PosA(Res, Find,start_pos+LenA(Replace))
LOOP
mle_1.Text=String(res)
mssc.DisconnectObject()
DESTROY mssc
Else
MessageBox("Aniquilar ","" +"Selecciona el Laburo a Aniquilar !!")
end if
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
El otro Modo lo hice utilizando
tasklist.exe
taskKill.exe
de windows, cree un par de bat con parametoros utizando
la funcion run de pb, creando un archivo
p'lano, e importandolo desde una dw
------------------------------------------------------------------------------------------------