![]() |
Liste der Exe-Pfade aller installierten Programme
Hallo!
Ich hab jetzt wirklich lange gesucht, aber nichhts Passendes gefunden: Wie kann man eine Liste der EXE-Pfade aller installierten Programme erhalten, sowohl 32bit als auch 64bit, XP bis W7? Also nicht die Liste der Displaynamen oder die Liste der Uninstall-Programme, sondern z.B.: Zitat:
|
AW: Liste der Exe-Pfade aller installierten Programme
Delphi-Quellcode:
Ansonsten die Frage genauer stellen.
procedure GetFiles(Path, ExtMask: String; List: TStrings; SubFolder: Boolean);
const Attrib = faArchive or faReadOnly or faHidden; var Tmp: String; k: Integer; Search: TSearchRec; begin Path := IncludeTrailingBackslash(Path); with TStringList.Create do try CommaText := ExtMask; for k := 0 to Count - 1 do begin Tmp := Strings[k]; //Entfernt führenden Punkt vor der Ext while Copy(Tmp, 1, 1) = '.' do System.Delete(Tmp, 1, 1); Strings[k] := Tmp; if FindFirst(Path + '*.' + Strings[k], Attrib, Search) = 0 then repeat if List.IndexOf(Path + Search.Name) < 0 then //Doppelte Filtern List.Add(Path + Search.Name); until FindNext(Search) <> 0; end; FindClose(Search); finally Free end; //---------------------------------------------------------------------------- //Application.ProcessMessages; if SubFolder then begin if FindFirst(Path + '*.*', faDirectory, Search) = 0 then begin repeat if ((Search.Attr and faDirectory) = faDirectory) and (Search.Name[1] <> '.') then GetFiles(Path + Search.Name, ExtMask, List, SubFolder); until FindNext(Search) <> 0; FindClose(Search); end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin GetFiles('c:\', 'exe', ListBox1.Items, True); end; |
AW: Liste der Exe-Pfade aller installierten Programme
Danke, aber das ist nicht das, was ich suchte. Eine Dateisuche findet auch Programme, die nicht installiert wurden.
|
AW: Liste der Exe-Pfade aller installierten Programme
Ist
![]() |
AW: Liste der Exe-Pfade aller installierten Programme
Was ist mit der Registry?
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uni nstall |
AW: Liste der Exe-Pfade aller installierten Programme
|
AW: Liste der Exe-Pfade aller installierten Programme
Zitat:
Dabei wirst du deiner Lösung von selber näher kommen. BTW: Das meinte Popov mit "Ansonsten die Frage genauer stellen" ;) |
AW: Liste der Exe-Pfade aller installierten Programme
Zitat:
Nein. Abgesehen davon, dass dieser Code voller Fehler ist, liefert er nur die Uninstall-Displaynamen, was ich ja in meiner obigen Definition ausgeschlossen habe. Hier ist der soweit entwanzte Code, der das nicht brauchbare Ergebnis liefert:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
const REGKEYAPPS = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'; var reg: TRegistry; List1: TStringList; List2: TStringList; j, n: Integer; begin reg := TRegistry.Create; List1 := TStringList.Create; List2 := TStringList.Create; { Load all the subkeys } with reg do begin RootKey := HKEY_LOCAL_MACHINE; Access := KEY_READ; // WICHTIG WEGEN UAC ! OpenKey(REGKEYAPPS, false); GetKeyNames(List1); end; { Load all the Value Names } for j := 0 to List1.Count - 1 do begin reg.OpenKey(REGKEYAPPS + '' + List1.Strings[j], false); reg.GetValueNames(List2); { We will show only if there is 'DisplayName' } n := List2.IndexOf('DisplayName'); if (n <> -1) and (List2.IndexOf('UninstallString') <> -1) then begin memoPrograms.Lines.Add((reg.ReadString(List2.Strings[n]))); end; end; List1.Free; List2.Free; reg.CloseKey; reg.Destroy; end; |
AW: Liste der Exe-Pfade aller installierten Programme
Zitat:
In diesem Registry-Zweig sind nur die Uninstall-Schlüssel, die nicht die Exe-Pfade der Programme enthalten. Außer: Einige wenige Unterzweige von 'Uninstall' enthalten den Schlüssel 'DisplayIcon' mit dem Exe-Pfad; dies sind jedoch nur wenige Programme insgesamt. Und die Uninstall-Werte habe ich ja durch meine obige Definition ausgeschlossen. |
AW: Liste der Exe-Pfade aller installierten Programme
Zitat:
Siehe Beiträge 8 und 9. Edit: Lies bitte nochmal meine Frage. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz