[ Foro de C# ]

return erroneo en Process?

31-Mar-2014 03:03
Invitado (Tommas)
1 Respuestas

este es mi codigo en C#, utilizo Visual Studio 2013.


[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        public static extern IntPtr GetForegroundWindow();
        [DllImport("user32.dll", SetLastError = true)]
        static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);

        Process GetActiveProcess()
        {
            IntPtr hwnd = GetForegroundWindow();
            uint pid;
            GetWindowThreadProcessId(hwnd, out pid);
            Process p = Process.GetProcessById((int)pid);
            return p;
        }


trabaja perfectamente... el return p; me da como resultado el nombre del proceso de la ventana activa, o en la que estoy trabajando... el problema es que el resultado que da es... por ejemplo si estoy en firefox la respuesta que envia es...
"System.Diagnostics.Process  Firefox"
y yo solo quiero que envie "Firefox", es decir... el proceso lo hace correctamente... pero no entiendo por que envia como resultado parte del codigo...
gracias...


31-Mar-2014 09:40
Nacho Cabanes (+84)

Me temo que estás malinterpretando algo...

El "return p" te devuelve un objeto de la clase Process. ¿Qué haces luego con ese objeto? Si lo escribes directamente, o usas el método ToString, es normal que se te convierta a algo "legible", pero que quizá no sea lo que tú deseas.

¿Has usado .ProcessName para saber el nombre del proceso? Aquí tienes la referencia oficial de la clase Process:

http://msdn.microsoft.com/es-es/library/system.diagnostics.process.processname(v=vs.110).aspx






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)