Working directory und Status eines anderen Prozesses abfragen
-
Hoi!
Ich arbeite an einer portablen Library zur Arbeit mit Prozessen und habe derzeit 2 Probleme mit der Windows Implementierung.
1. Ich habe nichts gefunden, wie ich das aktuelles Arbeitsverzeichnis eines anderen Prozesses herausfinden könnte, gibt es da keine API?
2. Prozesse haben ja verschiedene Zustände ... sie können Laufen, Schlafen, Gestoppt sein etc ... hierfür suche ich wiederrum eine Möglichkeit das abzufragen, hat jemand eine Idee?Danke und Grüße,
Ethon
-
Zu 1: Nein! Warum benötigst Du das. In dem Moment in dem Du das ermittelt hast, kann es sich ja schon wieder ändern.
Zu 2: Du irrst. Prozesse können nicht schlafen, laufen, gestoppt sein. Threads können supsended sein oder laufen. Services können gestartet sein, gestoppt sein, pausieren, deaktiviert sein, was abe wieder was anderes ist. Denn die haben ja auch wieder evtl. viele Threads.Was willst Du denn wirklich wissen?
-
Zu 1: Nein! Warum benötigst Du das. In dem Moment in dem Du das ermittelt hast, kann es sich ja schon wieder ändern.
Ehrlich gesagt geht es mir bei dem Feature nur darum konsistent zu bleiben. Ich habe das Feature ohne Aufwand für Linux, FreeBSD und MacOsX implementieren können, da kann eine Windows-Implementierung nicht so schwierig sein. Vor allem da Windows ja wirklich eine Menge Scheiß erlaubt, wenn ich da an CreateRemoteThread denke ... würde mich doch wundern wenn es da nichts gäbe.
Und "Race Conditions" sind dabei nicht unbedingt ein Problem, da Vorraussetzung ist dass man das Verhalten des Prozesses kennt.
Da sich meine Bibliothek um Debugging/Memory-Hacking dreht, fallen mir schon Szenarien ein, in denen soetwas Sinn machen würde.Zu 2: Du irrst. Prozesse können nicht schlafen, laufen, gestoppt sein. Threads können supsended sein oder laufen. Services können gestartet sein, gestoppt sein, pausieren, deaktiviert sein, was abe wieder was anderes ist. Denn die haben ja auch wieder evtl. viele Threads.
Stimmt, da war ich jetzt zu Linux fixiert, da kann man immerhin mit Signalen einen Prozess stoppen und damit gleichzeitig alle Threads.
Gibt es unter Windows kein Äquivalent?
Wenn nicht, wie heißt die API um den Zustand eines Threads ermitteln zu können?
-
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776484(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776483(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/dd391554(v=vs.85).aspx
-
Look PIF schrieb:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776484(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776483(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/dd391554(v=vs.85).aspxFür MS-DOS Programme?
-
-
-
Super, danke euch. Werde da demnächst mal ne Lösung bauen, sobald ich motiviert genug war Windows zu installieren.