Die Beschreibung in Turbo Delphi:
Rufen Sie GetModuleFileName auf, um den vollständig qualifizierten Namen eines Moduls anhand seines Handles abzurufen. Die in der
Unit System definierte Version von GetModuleFileName steht nur unter Linux zur Verfügung. Unter Windows verwenden Sie stattdesseen die Windows-
API mit demselben Namen.
Module ist das
Handle des Moduls, dessen Name erforderlich ist.
Buffer ist ein Puffer, der den Dateinamen empfängt.
BufLen ist die Anzahl der Byte in Buffer.
GetModuleFileName gibt die Anzahl der Byte zurück, die in Buffer geschrieben werden.
Soweit alles in Ordnung.
Jetzt kommt aber der Hammer!
Warnung:
GetModuleFileName liefert nicht immer den gewünschten Rückgabewert. Unter bestimmten Bedingungen (Aufrufart der Anwendung, Vorhandensein des /proc-Dateisystem usw.) kann GetModuleFileName einen Namen zurückgeben, der nicht voll qualifiziert ist. Manchmal wird auch überhaupt kein Dateiname zurückgegeben. Vergessen Sie nicht, die Ergebnisse dieser Funktion zur überprüfen, bevor Sie den Rückgabewert verwenden.
Tja, genau vor diesem Problem stehe ich. Ich habe das
Handle eines Prozesses, aber GetModuleFileName spuckt nichts aus. Ich brauche aber den vollen Pfadnahmen des Prozesses.
Weiß jemand, wie man noch an den vollen Pfadnamen herankommt?