Benutzer mit den meisten Antworten
alle Handles eines externen Programms

Frage
-
Hall, ich bin neu hier und habe in der Suche und bei Google gar nichts zu meiner Frage gefunden. Deswegen versuch ich hier mein Glück:
Also ich starte ein externes Programm mit
Process myProcess = new Process(); myProcess.StartInfo.FileName = abc; myProcess.Start(); HandleId = myProcess.Id;
ich möchte nun alle handles von diesem Programm (welches ich gerade gestartet habe) auslesen. geht das? oder wo liegt da das konkrete Problem
ich hätte danach gerne sowas wie ein array, wo ich mit einer foreach-Schleife dann jedes Handle durchgucken kann und das Caption vergleichen kann
vielen Dank für die Hilfe
MFG
Steffen
- Bearbeitet Robert BreitenhoferModerator Dienstag, 10. August 2010 16:12 DRINGEND! vom Titel entfernt + Formatierung
Antworten
-
Hallo Steffen,
könnte man zum einen mit dem veralteten [NtQuerySystemInformation] bewerkstelligen, aber auh die empfohlenen neueren Methoden benutzen:[Rongchaua's blog » C# – Get all handles of a given process in 64 bits]
http://rongchaua.net/blog/c-get-all-handles-of-a-given-process-in-64-bits/[Listing Used Files - CodeProject]
http://www.codeproject.com/KB/shell/OpenedFileFinder.aspx[How do I get the list of open file handles by process in C#? - Stack Overflow]
http://stackoverflow.com/questions/177146/how-do-i-get-the-list-of-open-file-handles-by-process-in-c
ciao Frank- Als Antwort vorgeschlagen Konrad Neitzel Samstag, 31. Juli 2010 17:38
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 10. August 2010 16:13
Alle Antworten
-
Hi,
Du könntest Dir evtl. erst mal über Win32-API Funktionen (wie z.B. FindWindow/FindWindowEx) den Handle des Parent-Fensters holen und dann analog zu der Vorgehensweise des VB6 Beispielprojekts http://www.activevb.de/tipps/vb6tipps/tipp0123.html die Handles innerhalb des Fensters zusammensuchen.
Ich verstehe allerdings den Sinn noch nicht ganz alle Handles haben zu wollen. Eventuell macht es mehr Sinn gezielt nach so etwas wie einem Handle zu einem bestimmten Button etc. zu suchen.
Vielleicht kannst Du Deine Frage bzw. den Hintergrund noch etwas präzisieren!?
-
Hallo Steffen,
könnte man zum einen mit dem veralteten [NtQuerySystemInformation] bewerkstelligen, aber auh die empfohlenen neueren Methoden benutzen:[Rongchaua's blog » C# – Get all handles of a given process in 64 bits]
http://rongchaua.net/blog/c-get-all-handles-of-a-given-process-in-64-bits/[Listing Used Files - CodeProject]
http://www.codeproject.com/KB/shell/OpenedFileFinder.aspx[How do I get the list of open file handles by process in C#? - Stack Overflow]
http://stackoverflow.com/questions/177146/how-do-i-get-the-list-of-open-file-handles-by-process-in-c
ciao Frank- Als Antwort vorgeschlagen Konrad Neitzel Samstag, 31. Juli 2010 17:38
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 10. August 2010 16:13