首頁 >後端開發 >C++ >如何以程式設計方式擷取 64 位元 Windows 上的程式檔案 (x86) 路徑?

如何以程式設計方式擷取 64 位元 Windows 上的程式檔案 (x86) 路徑?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-26 15:59:11407瀏覽

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 上,它在64 位元 Vista 上失敗,因為程式碼傳回 64 位元 Program Files 資料夾,而不是通常安裝應用程式的 Program Files x86 資料夾。

檢索Program Files以程式設定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 位元視窗

以上是如何以程式設計方式擷取 64 位元 Windows 上的程式檔案 (x86) 路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn