Suponiendo que ya tengo el control de una ventana, puedo obtener el PID con GetWindowThreadProcessId
. ¿Hay alguna forma de obtener el nombre del proceso sin tener que obtener todos los procesos y tratar de hacer coincidir mi PID?Obtener el nombre del proceso de pid o manejar
11
A
Respuesta
15
Puede usar Process.GetProcessById
para obtener Process
. Process
tiene mucha información sobre el programa en ejecución. Process.ProcessName
le da el nombre, Process.MainModule.FileName
le da el nombre del archivo ejecutable.
12
Process.GetProcessById(id).ProcessName
0
// Aquí hay un pequeño y ordenado método para devolver la memoria del administrador de tareas. Si la identificación del proceso no existe, lanzará una excepción y devolverá 0 para la memoria
/// <summary>
/// Gets the process memory.
/// </summary>
/// <param name="processId">The process identifier.</param>
/// <returns></returns>
/// <para> </para>
/// <para> </para>
/// <exception cref="ArgumentException"> </exception>
/// <exception cref="ArgumentNullException"> </exception>
/// <exception cref="ComponentModel.Win32Exception"> </exception>
/// <exception cref="InvalidOperationException"> </exception>
/// <exception cref="PlatformNotSupportedException"> </exception>
/// <exception cref="UnauthorizedAccessException"> </exception>
public static long GetProcessMemory(int processId)
{
try
{
var instanceName = Process.GetProcessById(processId).ProcessName;
using (var performanceCounter = new PerformanceCounter("Process", "Working Set - Private", instanceName))
{
return performanceCounter.RawValue/Convert.ToInt64(1024);
}
}
catch (Exception)
{
return 0;
}
}
Cuestiones relacionadas
- 1. Obtener nombre del proceso por PID
- 2. obtener pid del proceso hijo
- 3. Obtener el nombre de PID?
- 4. ¿Cómo obtener el PID de un proceso dando el nombre del proceso en Mac OS X?
- 5. obtener el nombre del proceso desde el proceso id (win32)
- 6. ¿Cómo obtener el nombre de usuario del proceso por PID en Mac OS?
- 7. ¿Cómo obtener el ID del proceso del nombre del proceso?
- 8. ¿Cómo obtener el estado del proceso usando pid?
- 9. Cómo obtener el nombre del proceso en C++
- 10. ¿Cómo obtener el nombre actual del proceso en Linux?
- 11. Obtener pid del proceso que ha activado alguna señal
- 12. Cómo obtener el PID de un proceso en una tubería
- 13. pid del proceso actualmente en ejecución
- 14. Obtenga el estado del proceso por pid en Ruby
- 15. ms C++ get pid del proceso actual
- 16. Win32API - ¿Cómo obtener el nombre de archivo del proceso desde el control del proceso?
- 17. ¿Cómo obtener un nombre de archivo de proceso de pid, si OpenProcess() falla con ACCESS_DENIED?
- 18. Forma de plataforma cruzada para obtener PID por nombre de proceso en python
- 19. ¿Cómo obtener el nombre del proceso de una aplicación?
- 20. Obtener el nombre del objeto o clase
- 21. ¿Cómo ver una cola de mensaje de proceso especificada si se conoce el PID del proceso?
- 22. Erlang: obtener el "nombre registrado" asociado con un `pid`
- 23. ¿Cómo obtener el PID infantil en C?
- 24. Android - ¿Cómo obtener el processName o packageName utilizando PID?
- 25. Conseguir última PID del proceso, en el Makefile
- 26. Determine pid de proceso terminado
- 27. obtener PID de paramiko
- 28. ¿Cómo puedo obtener el PID del proceso principal de mi aplicación?
- 29. Popen obteniendo pid del proceso de nueva ejecución
- 30. Buscar PID de un proceso por nombre sin usar popen() o system()
Sí, tiene razón. Gracias. Y también puedo obtener más información sobre el proceso. – user579674
Tenga en cuenta que Process.MainModule.Filename falla al invocar un destino de 64 bits desde un programa x86. ProcessName no sufre de esa limitación. – EricLaw
@EricLaw ¿Sabes si sucede lo contrario? ¿Como cuando se usa un programa de 64 bits para llamar a Process.MainModule.Filename en un objetivo x86? – FreeSnow