[ Foro de C# ]
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...
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.)