Giả sử tôi đã có tay cầm vào một cửa sổ, tôi có thể lấy PID với GetWindowThreadProcessId
. Có cách nào tôi có thể nhận được tên quá trình mà không cần phải có được tất cả các quy trình và cố gắng để phù hợp với PID của tôi?Lấy tên quy trình từ pid hoặc xử lý
11
A
Trả lời
15
Bạn có thể sử dụng Process.GetProcessById
để nhận Process
. Process
có rất nhiều thông tin về chương trình đang chạy. Process.ProcessName
cung cấp cho bạn tên, Process.MainModule.FileName
cung cấp cho bạn tên của tệp thi hành.
12
Process.GetProcessById(id).ProcessName
0
// Dưới đây là một phương pháp nhỏ gọn để trả về bộ nhớ trình quản lý tác vụ. Nếu id quá trình không tồn tại, nó sẽ ném một ngoại lệ và trả về 0 cho bộ nhớ
/// <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;
}
}
Các vấn đề liên quan
- 1. Cách lấy tên tệp quy trình từ pid, nếu OpenProcess() không thành công với ACCESS_DENIED?
- 2. lấy PID từ paramiko
- 3. Cách lấy tên quy trình trong C++
- 4. Nhận tên từ PID?
- 5. Cách đa nền tảng để lấy PID bằng tên quy trình trong python
- 6. C++ Windows - Cách lấy đường dẫn quá trình từ PID
- 7. Tìm PID của Quy trình theo Tên mà không sử dụng popen() hoặc hệ thống()
- 8. Nhận quy trình đang chạy xử lý được xử lý
- 9. lấy pid của tiến trình con
- 10. Cách lấy pid từ pthread
- 11. cách tìm quy trình có xử lý trên tệp từ tên tệp
- 12. Tại sao tên của quy trình trong/proc/PID/trạng thái không khớp với tên gói hoặc lệnh ps
- 13. Cách lấy tên người dùng bằng PID trên Mac OS?
- 14. Lọc theo quy trình/PID trong Wireshark
- 15. Cách lấy tham chiếu đến trình xử lý trang ASP.NET mặc định hoặc trình xử lý dịch vụ web?
- 16. Xử lý tên mông cổ
- 17. Nhận trạng thái xử lý bằng pid trong Ruby
- 18. Tên quy trình đầy đủ từ task_struct
- 19. Tùy chỉnh xử lý lỗi của quy trình unmarshall JAXB
- 20. Trình xử lý hoặc hẹn giờ android
- 21. Quy trình xử lý nền phụ.Chọn với đường ống
- 22. Xử lý đa Python: báo cáo tiến trình từ các quy trình
- 23. Xử lý đa Python cho các quy trình song song
- 24. Cách xử lý đúng cách xử lý các quy trình con
- 25. Làm cách nào để lấy id tiến trình từ tên quy trình?
- 26. Tham chiếu để xử lý đúng cách tệp PID trên Unix
- 27. Android - Cách lấy processName hoặc packageName bằng cách sử dụng PID?
- 28. Đa xử lý Python: Nhóm các quy trình tùy chỉnh
- 29. Quy trình xử lý được xác định như thế nào?
- 30. Cách lấy tên quy trình của ứng dụng?
Có bạn đúng. Cảm ơn bạn. Và tôi cũng có thể nhận được thông tin khác về quá trình này. – user579674
Lưu ý rằng Process.MainModule.Filename thất bại khi được gọi trên một mục tiêu 64bit từ một chương trình x86. ProcessName không bị giới hạn đó. – EricLaw
@EricLaw Bạn có biết điều ngược lại có đúng không? Giống như khi sử dụng một chương trình 64bit để gọi Process.MainModule.Filename trên một mục tiêu x86? – FreeSnow