假設我已經擁有窗口句柄,我可以使用GetWindowThreadProcessId
獲得PID。有沒有一種方法可以獲得進程名稱,而無需獲取所有進程並嘗試匹配我的PID?從pid或句柄獲取進程名稱
11
A
回答
15
您可以使用Process.GetProcessById
來獲得Process
。 Process
有很多關於正在運行的程序的信息。 Process.ProcessName
爲您提供了名稱,Process.MainModule.FileName
爲您提供了可執行文件的名稱。
12
Process.GetProcessById(id).ProcessName
0
//這是返回任務管理器內存的簡潔方法。如果進程ID不存在,它將拋出異常並返回0作爲內存。
/// <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;
}
}
相關問題
- 1. 通過PID獲取進程句柄
- 2. 通過圖像名稱獲取進程的進程句柄
- 3. 按進程名稱獲取進程句柄
- 4. 通過PID獲取進程名稱
- 5. 從PID獲取名稱?
- 6. Win32API - 如何從進程句柄獲取進程的文件名?
- 7. 獲取VB.NET中PID進程的所有子窗口的句柄
- 8. 獲取當前進程中所有句柄的名稱
- 9. 通過窗口句柄獲取未知進程的名稱?
- 10. 從瀏覽器進程獲取句柄
- 11. 如何從PID使用C獲取進程名稱
- 12. 如何從C++中的PID獲取進程名稱?
- 13. 如何使用PID從服務器層獲取進程名稱
- 14. linux在內核中從pid獲取進程名稱
- 15. 從子進程獲取PID
- 16. 通過名稱獲取控制句柄
- 17. 如何從linux中的pid獲取進程的路徑或名稱
- 18. 獲取進程主線程的句柄
- 19. 從進程名稱獲取進程ID
- 20. 如何從進程ID獲取進程句柄?
- 21. 從進程句柄獲取進程信息
- 22. 獲取進程表格的句柄c#
- 23. 獲取獨佔進程句柄
- 24. 從socket對象獲取fd或句柄
- 25. 獲取java進程的名稱而不是pid?
- 26. 從窗口類名稱獲取窗口句柄
- 27. 如何從Perl MySQL DBI句柄獲取數據庫名稱?
- 28. 獲取使用其圖像名稱的過程的句柄
- 29. 獲取所有窗口句柄和給定進程名稱的相應標籤句柄
- 30. 從進程得到句柄
是的你是對的。謝謝。我也可以獲得關於這個過程的其他信息。 – user579674 2011-01-27 17:42:55