Muszę wyświetlić listę wszystkich otwartych uchwytów w bieżącym procesie. Ponieważ nie mogłem znaleźć żadnej funkcji, takiej jak "EnumHandles", myślałem o zrobieniu pętli od 0 do 1000. Pytanie brzmi, w jaki sposób mogę pobrać nazwę każdego uchwytu? Używam C++, a system operacyjny to Win7 32-bitowy EDIT: Uchwyt, którego potrzebuję, to nazwa Mutex. Porównując nazwa mutex, chcę uzyskać identyfikator uchwyt wydaje mi się, że znalazłem rozwiązanie używając OpenMutex, ale nie wiem, co przechodzą na 3 parametruUzyskaj nazwy wszystkich uchwytów w bieżącym procesie
Odpowiedz
wierzę, trzeba użyć NTDLL.DLL. Z mojej wiedzy wynika, że wszystkie narzędzia do monitorowania procesów, uchwytów i innych informacji systemowych muszą w końcu korzystać z systemu Windows. Użyłem go w małym narzędziu Win32, jednak nigdy nie musiałem wymieniać uchwytów.
Tutaj znajdziesz dobre wprowadzenie do tej biblioteki i powiązane z pytaniem. http://forum.sysinternals.com/howto-enumerate-handles_topic18892.html
Również funkcja GetObjectName w pierwszym stanowisku http://forum.sysinternals.com/enumerate-opened-files_topic3577.html
Dostęp do tego rodzaju informacji w systemie Windows może wydawać się dużo pracy i wygląda przerażające, ponieważ Microsoft nie chce go wspierać, ale widać że gdy "łatwy" API nie daje ci tego, czego potrzebujesz, musisz wykopać do NTDLL. Właśnie takie narzędzia jak ProcessExplorer używają w końcu. To nie jest takie trudne w użyciu: załaduj bibliotekę DLL, uzyskaj odpowiednie wskaźniki funkcji, aby wypełnić deklarowane przez ciebie struktury, korzystając z tego, co znajdziesz w sieci.
Nie jestem mentorem procesów, to uchwyt znajduje się w bieżącym procesie – WePro2
źle to wyjaśniłem. Biblioteka NTDLL.DLL służy do uzyskiwania informacji o głębokich informacjach systemowych (procesach, uchwytach itp.). To jest DLL, który jest nieudokumentowany przez Microsoft, ale możesz znaleźć dokumentację pod linkami, które podałem, lub przez Google. Trzeba tylko znać struktury i funkcje wywoływać w DLL. – fury
Wygląda na to, że wiele pracy wymaga podania nazwy uchwytów. Myślę, że OpenMutex może być odpowiedź, której szukam, ale nie jestem pewien, czy muszę przekazać pełną ścieżkę mutex (\ Sessions \ 1 \ BaseNamedObjects \ somemutex) lub po prostu somemutex na 3rd parametr. Próbowałem obu, ale nie udało się – WePro2
- 1. Zamykanie wszystkich otwartych plików w procesie
- 2. Lista wszystkich aktualnie otwartych uchwytów plików?
- 3. Jak zmienić CurrentCulture w całym procesie (nie tylko bieżącym wątku) w .Net?
- 4. Uzyskaj nazwy kolumn
- 5. Wywołanie API POSIX do wyświetlenia wszystkich pthreadów działających w procesie
- 6. Nazwy wszystkich miast
- 7. Uzyskaj datę na poniedziałek i piątek w bieżącym tygodniu (PHP)
- 8. Co rozszerza się do wszystkich plików w bieżącym katalogu rekursywnie?
- 9. Uzyskaj identyfikator zasobu od nazwy
- 10. Uzyskaj WOEID od nazwy miasta?
- 11. Uzyskaj nazwy parametrów metody interfejsu
- 12. Uzyskaj funkcję według nazwy dynamicznie w Kotlin
- 13. Uzyskaj nazwy kolumn tabeli w mysql?
- 14. Uzyskaj nazwy plików obrazów w katalogu
- 15. Uzyskaj katalog nazwy pliku w języku JavaScript
- 16. Uzyskaj wszystkich rodziców dla dziecka
- 17. Uzyskaj ścieżki wszystkich odwoływanych zespołów
- 18. Uzyskaj wszystkich członków w posortowanym zestawie
- 19. Zapisywanie nazwy klasy wszystkich UIViewControllers w projekcie
- 20. Monitorować wykorzystanie sieci w procesie?
- 21. MATLAB: Scalanie uchwytów funkcji
- 22. Uzyskaj nazwy parametrów z zapytania SQL
- 23. Uzyskaj nazwy atrybutów Magento zamiast numerów identyfikacyjnych?
- 24. Uzyskaj listę wszystkich naciśnięć z Git
- 25. Uzyskaj adres URL wszystkich elementów dotkniętych WKWebView
- 26. Uzyskaj identyfikatory wszystkich obiektów na liście
- 27. Uzyskaj numer miesiąca od nazwy miesiąca
- 28. Uzyskaj nazwy atrybutów i wartości z ElementTree
- 29. Uzyskaj dostęp do wszystkich właściwości stylu CSS?
- 30. Metoda uruchamiania w nowym procesie
Co masz na myśli przez "nazwę każdego uchwytu"? Uchwyty nie mają nazw. Masz na myśli identyfikator handle, odpowiednie klasy okien lub tytuły tekstowe? –
Nie wszystkie uchwyty odnoszą się do plików z nazwami. Czy rozważałeś przeglądanie procesu Explorer? –
To podejście nie działa. Jakie rodzaje uchwytów? – SLaks