Autor Beitrag
colaka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 4

Win XP, W7
Delphi 2005 Prof.
BeitragVerfasst: Fr 19.03.10 09:35 
Hallo,

für ein Update-Programm möchte ich den Programme-Ordner von Windows ermitteln. In einem Buch (Delphi 7 Kochbuch) habe ich die folgende Funktion gefunden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function GetPath_Programs : string;
var  pidl          : PItemIDList;
     ProgramPath   : PChar;
begin
  if SUCCEEDED(SHGetSpecialFolderLocation(0, CSIDL_PROGRAMS, pidl)) then begin
    ProgramPath := StrAlloc(max_path);
    SHGetPathFromIDList(pidl, ProgramPath);
    result := Programpath;
    StrDispose(ProgramPath);
    if copy(result,length(result),1) <> '\' then result := result + '\';
  end else result := '';
end;


Doch diese Funktion liefert mir als Ergebnis:
C:\Dokumente und Einstellungen\All Users\Startmenu\Programme\

Ich möchte aber C:\Programme bzw C:\Programs erhalten.

Für "CSIDL_PROGRAMS" habe ich auch schon "CSIDL_COMMON_PROGRAMS" eingesetzt, aber das führt auch nicht zum gewünschten Ergebnis.

Kann mir hier vielleicht jemand sagen, wie ich den Programme-Ordner ermitteln kann?

Danke Ebi


Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am Fr 19.03.2010 um 10:47


Zuletzt bearbeitet von colaka am Fr 19.03.10 20:39, insgesamt 1-mal bearbeitet
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Fr 19.03.10 09:56 
Hier findest Du eine Übersicht, über die Konstanten:
msdn.microsoft.com/e...2494%28VS.85%29.aspx

CSIDL_PROGRAM_FILES müsste für Dich das richtige sein.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)