ホームページ >バックエンド開発 >C++ >64 ビット Windows でプログラム ファイル (x86) パスを取得するにはどうすればよいですか?

64 ビット Windows でプログラム ファイル (x86) パスを取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-26 15:59:11412ブラウズ

How Can I Programmatically Retrieve the Program Files (x86) Path on 64-bit Windows?

64 ビット Windows システム上のプログラム ファイル (x86) パスの取得

ユーザーのマシン上の古い MS-DOS アプリケーションを検出するために、一般的なこの方法では、次のようなコードを使用して Program Files フォルダーをチェックします。

FileInfo(
    System.Environment.GetFolderPath(
        System.Environment.SpecialFolder.ProgramFiles) 
    + @"\MyInstalledApp"
)

これは Windows で動作しますが、 XP および 32 ビット Vista では、コードがアプリケーションが通常インストールされる Program Files x86 フォルダーではなく 64 ビット Program Files フォルダーを返すため、64 ビット Vista では失敗します。

プログラムによるプログラム ファイルの x86 パス

この問題に対処するには、パスを返すプログラムによる解決策が必要です。システム構成に関係なく、Program Files x86 フォルダーに保存されます。次の関数はこの要件を満たします。

static string ProgramFilesx86()
{
    if( 8 == IntPtr.Size 
        || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTUREW6432"))))
    {
        return Environment.GetEnvironmentVariable("ProgramFiles(x86)");
    }

    return Environment.GetEnvironmentVariable("ProgramFiles");
}

この関数は、システムのビット数と特定の環境変数の存在を考慮して、目的のフォルダーへのパスを識別して返します。次の構成を処理します:

  • 32 ビット Windows
  • 64 ビット Windows 上で実行される 32 ビット プログラム
  • 64 ビット上で実行される 64 ビット プログラムWindows

以上が64 ビット Windows でプログラム ファイル (x86) パスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。