Autor Beitrag
Logikmensch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: Di 19.01.10 07:33 
Scheint schwieriger zu sein, was ich da vorhabe.

Ich habe vor, die Installationspfade (sprich: Die Aufrufziele der EXEs) von für mich interessanten Programmen über die Registry auszulesen. Soll auch auf Win98, XP und Vista funzen.

Im Schlüssel HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
stehen zwar die Einträge drin, die auch über Systemsteuerung/Software ausgelesen werden können, aber der Wert InstallSource ist bei vielen Einträgen leer, so dass ich also nicht immer rauskriege, wo steht das Programm eigentlich.

Gibt es noch einen anderen Weg als die gesamte Festplatte nach bekannten EXEs abzusuchen?

Bei XP habe ich im Schlüssel HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache
zwar eine sehr schöne Liste mit den Programmnamen und ihren Aufrufen, aber das Wort Cache sagt implizit ja schon aus, dass das keine verlässliche Liste ist - ich nehme an, dass die nicht langzeitstabil ist.

Weiß jemand Rat, der sowas schon mal gemacht hat? Ich brauche lediglich den richtigen Ansatz, keine fertige Lösung. ;-)

_________________
Es gibt keine Probleme - nur Lösungen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 19.01.10 08:41 
Es gibt noch Listen von vorhandenen DLLs (und evtl. auch Exe-Dateien, weiß ich grad nicht), bei denen Windows diese quasi angemeldet werden. Ich müsste selbst einmal in der Registry suchen wo genau das war. Aber darüber lässt sich vielleicht auch etwas finden.
Und dann gibts noch eine Liste der Anwendungen, ich glaube dort:
ausblenden Quelltext
1:
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths					
Logikmensch Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: Do 21.01.10 07:03 
Danke für den Tipp. Einige Anwendungen schreiben nach dem Installieren tatsächlich unter ...\App_Paths was rein. Aber leider ist es nicht immer so.

Leider musste ich nach dem Installieren (Installshield) einer von mir geschriebenen Anwendung feststellen, dass ich in der gesamten Registry den Dateinamen der EXE eigentlich nur an ganz wenigen Stellen wiederfinde. Und diese Stellen sind auf meinem XP-System:
HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Userdata\S-1-5...\Components\<Hexziffer>
HKEY_USERS\S-1-5...\Software\Microsoft\Windows\ShellNoRoam\MUICache

Der MUICache (was auch immer das ist) sieht ja ganz gut aus - dort finden wir die Aufrufpfade und die Namen der Anwendungen hübsch gelistet. Aber ich weiß nicht, wie verlässlich dieser Cache tatsächlich ist, um ihn generell auszulesen.
Caches haben die Eigenschaft, flüchtig zu sein. ;-)

Bleibt die Frage offen, woher wissen die ganzen Uninstaller dann, wo ihr Programm installiert wurde?

Nachtrag: Ich habe noch HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CurrentVersion\Installer\Folders
gefunden. Mal schauen, ob das auch bei älteren Betriebssystemen verwendet wird.

_________________
Es gibt keine Probleme - nur Lösungen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 21.01.10 19:05 
user profile iconLogikmensch hat folgendes geschrieben Zum zitierten Posting springen:
Bleibt die Frage offen, woher wissen die ganzen Uninstaller dann, wo ihr Programm installiert wurde?
Dafür haben die meisten Uninstaller eine entsprechende Datenbank bzw. Datendatei, in der genau steht was bei der Installation gemacht wurde.
Logikmensch Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: Di 26.01.10 07:07 
Okay, danke für die Info. Ich bin mir mittlerweile auch sicher, dass es sich so verhält. Schade, naja. Dann nutze ich halt das, was zur Verfügung steht, auch wenn es nicht gerade viel ist. Trotzdem danke!!!

_________________
Es gibt keine Probleme - nur Lösungen!