J'utilise:
FileInfo(
System.Environment.GetFolderPath(
System.Environment.SpecialFolder.ProgramFiles)
+ @"\MyInstalledApp"
Afin de déterminer si un programme est détecté sur la machine d'un utilisateur (ce n'est pas idéal, mais le programme que je recherche est un bon vieux kludge d'une application MS-DOS, et je ne pouvais pas penser à une autre méthode).
Sur Windows XP et les versions 32 bits de Windows Vista, cela fonctionne correctement. Cependant, sous Windows Vista x64, le code renvoie le dossier Program Files x64, alors que l'application est installée dans Program Files x86. Existe-t-il un moyen de renvoyer par programme le chemin vers Program Files x86 sans câblage "C: \ Program Files (x86)"?
Réponses:
La fonction ci-dessous renverra le
Program Files
répertoire x86 dans toutes ces trois configurations Windows:la source
Environment.Is64BitOperatingSystem
ouEnvironment.Is64BitProcess
?Si vous utilisez .NET 4, il existe une énumération de dossier spéciale ProgramFilesX86 :
la source
la source
Notez, cependant, que la
ProgramFiles(x86)
variable d'environnement n'est disponible que si votre application s'exécute en 64 bits.Si votre application fonctionne en 32 bits, vous pouvez simplement utiliser la
ProgramFiles
variable d'environnement dont la valeur sera en fait "Program Files (x86)".la source
Une façon serait de rechercher la variable d'environnement "ProgramFiles (x86)":
la source
J'écris une application qui peut fonctionner à la fois sur les plates-formes x86 et x64 pour Windows 7 et l'interrogation de la variable ci-dessous tire simplement le bon chemin de dossier des fichiers de programme sur n'importe quelle plate-forme.
la source
One-liner utilisant la nouvelle méthode dans .NET. Renvoie toujours le dossier Program Files x86.
Environment.Is64BitOperatingSystem ? Environment.GetEnvironmentVariable("ProgramFiles(x86)") : Environment.GetEnvironmentVariable("ProgramFiles"))
la source
Code C #:
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)
Production:
C: \ Program Files (x86)
Remarque:
Nous devons dire au compilateur de ne pas préférer une plate-forme de construction particulière.
Raison:
la source