Tôi cần liệt kê tất cả các chốt mở trong quy trình hiện tại. Vì tôi không thể tìm thấy bất kỳ chức năng nào như "EnumHandles", tôi đã nghĩ đến việc tạo vòng lặp từ 0 đến 1000. Câu hỏi đặt ra là làm thế nào tôi có thể lấy tên của mỗi tay cầm? Tôi đang sử dụng c + + và hệ điều hành là Win7 32-bit EDIT: Tay cầm tôi cần tên là Mutex. Bằng cách so sánh tên của mutex, tôi muốn lấy id xử lý Tôi dường như đã tìm thấy giải pháp bằng cách sử dụng OpenMutex, nhưng tôi không biết phải truyền thông số thứ 3,Lấy tên của tất cả các chốt trong quy trình hiện tại
Trả lời
Tôi tin rằng bạn phải sử dụng NTDLL.DLL. Theo hiểu biết của tôi, đây là tất cả các công cụ giám sát quy trình, xử lý và thông tin hệ thống khác, phải sử dụng cuối cùng, trong Windows. Tôi sử dụng nó trong một công cụ Win32 nhỏ, tuy nhiên không bao giờ phải liệt kê xử lý.
Kiểm tra ở đây để có phần giới thiệu tốt về thư viện đó và liên quan đến câu hỏi của bạn. http://forum.sysinternals.com/howto-enumerate-handles_topic18892.html
Ngoài chức năng GetObjectName trong bài viết đầu tiên của http://forum.sysinternals.com/enumerate-opened-files_topic3577.html
Tiếp cận loại thông tin này trong Windows có thể dường như là rất nhiều công việc và trông đáng sợ bởi vì Microsoft không muốn để hỗ trợ nó, nhưng bạn sẽ thấy rằng khi API 'dễ dàng' không cung cấp cho bạn những gì bạn cần, bạn phải đào sâu đến NTDLL. Đây là những công cụ như ProcessExplorer sử dụng cuối cùng. Nó không phải là khó khăn như vậy để sử dụng: tải DLL, có được con trỏ chức năng đúng để điền vào các cấu trúc mà bạn tuyên bố mình với những gì bạn sẽ tìm thấy trên mạng.
Tôi không cố vấn quy trình, xử lý được đặt trong quy trình hiện tại – WePro2
Tôi đã giải thích rõ điều đó. Thư viện NTDLL.DLL có nghĩa là để nhận thông tin về thông tin hệ thống sâu (các quy trình, xử lý, v.v.). Đây là một DLL không có giấy tờ của Microsoft nhưng bạn có thể tìm thấy tài liệu tại các liên kết tôi đã cung cấp hoặc bằng cách googling. Bạn chỉ cần biết các cấu trúc và chức năng để gọi trong DLL. – fury
Nó trông rất nhiều công việc chỉ để lấy lại tên của tay cầm. Tôi nghĩ rằng OpenMutex có thể là câu trả lời tôi đang tìm kiếm, nhưng tôi không chắc chắn nếu tôi cần phải vượt qua đường dẫn đầy đủ của mutex (\ Sessions \ 1 \ BaseNamedObjects \ somemutex) hoặc chỉ somemutex trên tham số thứ 3. Tôi đã thử cả hai nhưng không thành công – WePro2
- 1. Tạm dừng tất cả chuỗi trong quy trình hiện tại tại thời điểm chạy
- 2. Nhận tất cả quy trình của phiên hoạt động hiện tại
- 3. liệt kê tất cả các quy trình trong iOS 5.0.1
- 4. java: lấy tất cả các tên biến trong một lớp
- 5. Nhận tên quy trình hiện tại (thực thi) trong Go?
- 6. Cách lấy tên quy trình trong C++
- 7. cách nhận tất cả các quy trình gốc và tất cả các quy trình con theo lệnh `pstree`
- 8. Tất cả các quy ước đặt tên là gì?
- 9. Lấy tên của phương pháp hiện tại
- 10. Lấy tên hàm hiện tại trong PHP
- 11. Nhận tất cả các ngày trong tuần hiện tại?
- 12. Điều gì mở rộng cho tất cả các tệp trong thư mục hiện tại đệ quy?
- 13. Lấy tên của tất cả các lớp Java được khai báo trong một gói
- 14. Cách lấy tên quy trình của ứng dụng?
- 15. CMake: Cách lấy tên của tất cả các thư mục con của một thư mục?
- 16. Làm cách nào để có được các chốt của tất cả các số liệu mở trong MATLAB
- 17. Có cách nào để lấy danh sách tất cả các bảng tạm thời hiện tại trong SQL Server không?
- 18. Cách lấy danh sách tất cả các tên miền trong Active Directory bằng C#
- 19. Thay đổi LD_LIBRARY_PATH của môi trường quy trình hiện tại
- 20. Làm thế nào tôi có thể lấy tên của chương trình con hiện tại trong Perl?
- 21. Bắt tên của tất cả các datamembers trong một DataContract
- 22. Lấy tên quy trình từ pid hoặc xử lý
- 23. Lấy tên mô-đun hiện tại
- 24. cho phép tất cả các tên miền
- 25. Truy vấn SQL Server để tìm tất cả các tên cơ sở dữ liệu hiện tại
- 26. JavaScript - Cách lấy tên của người dùng hiện tại
- 27. Lấy danh sách tất cả các tệp trong thư mục (đệ quy)
- 28. Cách lấy tên ngữ cảnh hiện tại của rspec?
- 29. Lấy ra tất cả các lớp của một không gian tên cụ thể
- 30. Lấy tên của tập lệnh hiện tại bằng Python
Bạn có ý nghĩa gì với "tên của mỗi tay cầm"? Xử lý không có tên. Bạn có nghĩa là id xử lý, các lớp cửa sổ tương ứng hoặc tiêu đề văn bản? –
Không phải tất cả các xử lý đều đề cập đến các tệp có tên. Bạn đã xem xét xem Process Explorer chưa? –
Cách tiếp cận đó sẽ không hoạt động. Loại xử lý nào? – SLaks