Teniendo este script
strComputer = "."
value = "winmgmts:{impersonationLevel=impersonate}!\\"
Set objWMIService = GetObject( value & strComputer & "\root\cimv2")
Wscript.Echo value & strComputer & "\root\cimv2"
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objProcess in colProcessList
colProperties = objProcess.GetOwner(strNameOfUser,strUserDomain)
Wscript.Echo "Process " & objProcess.Name & " is owned by " _
& strUserDomain & "\" & strNameOfUser & "."
Next
Podemos ver los procesos que tenemos corriendo.
El problema es que para xHarbour esto no funciona;
FUNCTION FindProcess( )
Local strComputer := ".", strNameOfUser, strUserDomain , objProcess, colProperties
Local objWMIService := getactiveobject( "winmgmts:{impersonationLevel=impersonate}!\\" + strComputer + "\root\cimv2" )
Local colProcessList := objWMIService:ExecQuery( "Select * from Win32_Process" )
For Each objProcess in colProcessList
colProperties := objProcess:GetOwner( @strNameOfUser, @strUserDomain )
? "Process " + objProcess:Name + " is owned by " +strUserDomain + "\" + strNameOfUser + "."
Next
La funcion getactiveobject() no es porque FALLA;
Path and name: C:\ULYWIN\REPLICACION\replicador.exe (32 bits)
Size: 1,662,976 bytes
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 06/16/08, 16:07:09
Error description: Error TOleAuto/-1 CO_E_CLASSSTRING: TOLEAUTO:GETACTIVEOBJECT
Args:
[ 1] = C winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2
¿ Alguien puede indicarme como puedo solucionarlo ?
El problema que tengo es que si la aplicacion de Fivewin esta como servicio y no tenemos una ventana en las tareas, tengo una funcion que
busca el nombre y la muestra, para evitar tener más de una aplicacion abierta a la vez. Pero con el servicio, esta no la encuentra, por lo tanto,
necesito busca el hWnd del programa como servicio, y mostrarla..
( No se si me explicado... ) Logicamente la aplicacion tiene una ventana.