Informacion de procesos

11/11/2005 - 07:21 por Maxus | Informe spam
Hola a todos, la pregunta que quería formular es la siguiente:

Estoy desarrollando un administrador de tareas, y no se como puedo saber que
usuario ha lanzado el proceso. ¿Como puedo obtener dicha información?

Muchas gracias por adelantado y un saludo a todos.

Preguntas similare

Leer las respuestas

#1 Jose Luis Manners
11/11/2005 - 15:44 | Informe spam
Hola Maxus,

Hay dos maneras:

System.Environment.UserName
SystemInformation.UserName

Saludos,

Jose Luis Manners, MCP
http://www.josemanners.com/

"Vale más saber alguna cosa de todo, que saberlo todo de una sola cosa."
-Blaise Pascal

"Maxus" wrote in message
news:
Hola a todos, la pregunta que quería formular es la siguiente:

Estoy desarrollando un administrador de tareas, y no se como puedo saber


que
usuario ha lanzado el proceso. ¿Como puedo obtener dicha información?

Muchas gracias por adelantado y un saludo a todos.
Respuesta Responder a este mensaje
#2 Tristan
11/11/2005 - 22:59 | Informe spam
Creo que necesitarás utilizar el api win32 OpenProcessToken():

[Flags]
enum TokenAccess : uint
{
Query = 0x0008
}

[DllImport("Advapi32.dll", SetLastError = true)]
extern static int OpenProcessToken(IntPtr processHandle, TokenAccess
desiredAccess, out IntPtr tokenHandle);

[DllImport("kernel32.dll", SetLastError = true)]
extern static bool CloseHandle(IntPtr handle);

foreach (Process proceso in Process.GetProcesses())
{
IntPtr token;
if(OpenProcessToken(proceso.Handle, TokenAccess.Query, out token) == 0)
MessageBox.Show("No se puede obtener el creador del proceso: " +
proceso.ProcessName);
else
{
WindowsIdentity usuario = new WindowsIdentity(token);
MessageBox.Show(proceso.ProcessName + "=>" + usuario.Name);
CloseHandle(token);
}
}

Juan Carlos Badiola
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida