Ich wusste ja schon immer, dass es MS drauf hat
. Aber das setzt dem Ganzen die Krone auf:
Zitat von
http://msdn.microsoft.com/en-us/library/windows/desktop/dd378457(v=vs.85).aspx:
FOLDERID_ProgramFilesX64
This value is not supported on 32-bit operating systems. It also is not supported for 32-bit applications running on 64-bit operating systems. Attempting to use FOLDERID_ProgramFilesX64 in either situation results in an error.
Das heißt also auf gut deutsch: Noch nicht einmal mit der (neuesten, erst seit Vista verfügbaren) Funktion SHGetKnownFolderPath() könnte ich den echten Pfad ermitteln. Humor ham'se dann auch noch - sofern man das so interpretieren will, denn FOLDERID_ProgramFilesCommonX64 gibt einen ordentlichen Wert zurück mit einer 32 Bit Anwendung auf einem 64 Bit
OS, wie man in den Remarks zu
KNOWNFOLDERID lesen kann. Aber FOLDERID_ProgramFilesX64 braucht man ja auch nicht, denn es gibt ja keine Anwendungsfälle für sowas
...
Tja, wenn niemand noch eine (bessere) Idee hat, bleibt mir wohl nichts anderes übrig, als auf die Registry zurückzugreifen, wenn %ProgramFiles% im Wert steht, obwohl man solche Pfade eigentlich nicht via Registry sondern
API-Funktion ermitteln soll.
MfG Dalai