Es gibt keine Garantie, dass Sie Versionsinformationen zu einem Programm in der Registrierung finden. Ich verwende den Registrierungsschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\programname
, um den vollständigen Pfad zu finden, aber es hängt immer noch vom Setup/Installationsprogramm ab, um diesen Wert festzulegen. Wenn es schön genug war, diese Konvention zu verwenden, können Sie den vollständigen Pfad verwenden, um GetFileVersionInfo(...)
aufzurufen.
Es ist immer noch Aufgabe des Entwicklers, die nützliche Ressource Informationen wie Version, Firmenname, Beschreibung, Urheberrecht, etc ... Sie können sagen, einige Programme haben die alten Standard "To Do" Platzhalter in der Ressource. Andere, sogar Microsoft, werden vergessen, den Firmennamen in die Ressource für Programme wie Dumprep aufzunehmen. Andere Exes, die ohne Visual Studio erstellt wurden, müssen kein Ressourcensegment enthalten, auf das von GetFileVersionInfo()
zugegriffen werden kann.
Letztendlich habe ich diese Funktion als die zuverlässigste gefunden. Beachten Sie auch, bevor Sie anrufen GetFileVersionInfo()
stellen Sie sicher, dass Sie GetFileVersionSize()
anrufen. Wenn es sich um eine x64-Version von Windows handelt, müssen Sie möglicherweise in einigen Fällen Wow64DisableWow64FsRedirection(...)
Wow64RevertWow64FsRedirection(...)
aufrufen oder SysNative verwenden, wenn sich das Programm in einem Systemordner befindet, der umgeleitet wird.
Welche Software ist für Sie interessant? – Oleg
@Oleg muss hier drüben sein ;-) –
@Uwe Keim: Danke Uwe! Es ist repariert. – Oleg