Zitat von
Delphi-Laie:
Diese Frage kann ich gleich an Mikroweich weiterleiten....
In irgend einem MS Blog hab ich mal ne Begründung für die unterschiedliche Verhaltensweise gesehen. Weiß aber nicht mehr wo ...
Zitat von
Delphi-Laie:
Nein, aber auf der anderen Seite stört es mich sooo sehr nun auch wieder nicht. Mir ging es darum, die Ergebnisse der o.g. Schnappschüsse und der o.g. Enumerationen zu präsentieren und das zusätzliche "Rumgemache" zu begrenzen (und wenn, dann vor allem in die Ermittlung weiterer Informationen zu investieren, hier in IsEnabled und IsVisible). Der Pfad ist doch auch unter NTx ermittelbar, dann aber eben im Modulschnappschuß. Sicher könnte ich das in den Prozeßschnappschuß integrieren, aber ein Ergebnis des Modulschnappschusses in den Prozeßschnappschuß integriert, ist doch auch ein klein wenig "gemogelt".
Ist nicht so als wäre es übermäßig kompliziert den Dateinamen zu ermitteln:
Delphi-Quellcode:
function GetProcessFilename2k(PID: DWord): WideString;
var hProc: Cardinal;
Buffer: PWideChar;
begin
//MAX_PATH under NT is 32767 wchars + 1 for terminating 0 wchar
GetMem(Buffer, 32768 * 2);
hProc := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PID);
if hProc <> 0 then
begin
if GetModuleFileNameExW(hProc, 0, Buffer, 32768 * 2) <> 0 then Result := Buffer
else Result := '';
CloseHandle(hProc);
end;
FreeMem(Buffer, 32768 * 2);
end;
Ich behaupte auch, der Code wird dadurch nicht unübersichtlicher. Das Programm erhält aber signifikant mehr Usability.