Einzelnen Beitrag anzeigen

hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: Dateipfad eines Prozess Images für 64 bit Prozesse ermitteln

  Alt 21. Jun 2012, 11:53
Hallo Zacherl

die Funktion wäre super, nur bring ich sie leider nicht zum funktionieren. Erste kleine Anmerkung: Bei Delphi7 gibt's bei
Delphi-Quellcode:
    BufferSize := QueryDosDevice(PChar(LogicalDrives[I] + ':'),
      @Buffer[0], MAX_PATH);
in der
Code:
function DeviceNameToFilePath(FileName: String): String;
einen Typumwandlungsfehler.
Lösung: Eine String-Variable (hi) deklarieren und:
Code:
      hi := LogicalDrives[I] + ':';
      BufferSize := QueryDosDevice(PChar(hi), @Buffer[0], MAX_PATH);
Ich habe zum Testen ein ganz dämliches Programm drum herum gebastelt. Ein Button und ein Edit. ins Edit-Feld gebe ich aus dem Task-Manager eine PID (z.B. von Delphi) ein und mit der rufe ich GetProcessPathByPID auf. Ich bekomme aber immer einen leeren String zurück.
Getestet auf XP-Prof. mit Delphi7. Wenn ich das mit dem Debugger durchspiele, holt er sich zwar ein ImageFileName über die PSAPI.DLL. Aber irgendwie verliert er sich în der Umwandlungsroutine DeviceNameToFilePath. Ich kann mir nicht vorstellen, dass es mit meiner oben erwähnten Korrektur zu tun, vermute aber viel mehr irgend ein Delphi-Versionen-Problem
Heinz Schneider

Geändert von hesch21 (21. Jun 2012 um 16:21 Uhr)
  Mit Zitat antworten Zitat