インストールされているプログラムの場所を特定することは、特に 64 ビット Windows では困難な場合があります。デフォルトの Program Files フォルダーには、x86 互換プログラムが含まれていない可能性があります。この問題により、Program Files (x86) ディレクトリへのパスをプログラムで取得する解決策を見つけることが求められます。
提供されたコード スニペットでは、指定されたフォルダー パスは、Program Files (x86) ディレクトリにインストールされているプログラムを検出できません。 64 ビット Windows Vista。これは、コードが x64 Program Files フォルダーへのパスを返すのに対し、目的のアプリケーションは x86 バージョンに存在するためです。
この問題に対処するために、カスタム関数が導入されています。
static string ProgramFilesx86() { if( 8 == IntPtr.Size || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432")))) { return Environment.GetEnvironmentVariable("ProgramFiles(x86)"); } return Environment.GetEnvironmentVariable("ProgramFiles"); }
この関数は、次の Program Files (x86) ディレクトリへのパスを効果的に返します。シナリオ:
この関数は IntPtr.Size とPROCESSOR_ARCHITEW6432 環境変数を使用して、システムのアーキテクチャを決定します。アーキテクチャが x64 の場合は、Program Files (x86) フォルダーへのパスを取得し、それ以外の場合は、32 ビット Program Files フォルダーへのパスを返します。
この関数を使用することで、開発者は、 64 ビット Windows システムの Program Files (x86) ディレクトリ。これにより、プログラムが x86 互換アプリケーションを正しく検出して操作できるようになります。
以上が64 ビット Windows でプログラム ファイル (x86) パスを確実に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。