Tippe doch in eine beliebige Windows Explorer Addresszeile das englische "C:\Program files" (ja, ohne Anführungszeichen) und schaue wo du rauskommst!
Das ist klar, aber ohne Bestätigung und / oder Gegenprüfung kann ich zwar vermuten (was ich ja auch habe)
aber nicht gleich darauf schließen, dass das z. B. im kyrillischen oder chinesischen genauso ist.
Des Weitern würde ich mal in die Windows Registry nachschauen, ob dieses ominöse "ExternalProg" ggf. den Informationen zu seinen Aufenthaltsort abspeichert.
Leider nicht zuverlässig, da man zu allem Überfluss das ExternalProg auch portable installieren kann. Aber gute Idee!
Die Ordner heißen immer Program Files bzw. Program Files (x86). Die Übersetzungen sind nur Links. So verweist "C:\Programme" hier unter einem 64-Bit Programm auf "C:\Program Files".
Das wäre die ideale Lösung, da ich in meinem Code die Ordner "halb-hart"-codiert abklappere:
Delphi-Quellcode:
FileExists('C:\Program Files\ExampleFolder\ExternalProg.exe') ...
FileExists('C:\Program Files (x86)\ExampleFolder\ExternalProg.exe') ...
Ist das auch in chinesisch, kroatisch, usw. so? Bitte nicht falsch verstehen, ich will nur sicher gehen. Nach all dem Suchen wäre somit die Lösung so einfach, oder?
Liegen die Ordner immer im LW-Root? Also könnte ich das abklappern:
C:\Program Files,
D:\Program Files,
E:\Program Files usw?