首頁 >後端開發 >C++ >如何在 64 位元 Windows 中可靠地取得 Program Files (x86) 路徑?

如何在 64 位元 Windows 中可靠地取得 Program Files (x86) 路徑?

Linda Hamilton
Linda Hamilton原創
2024-12-28 04:51:10312瀏覽

How to Reliably Get the Program Files (x86) Path in 64-bit Windows?

使用C 在64 位元Windows 中取得程式檔案(x86) 路徑

確定已安裝程式的位置可能具有挑戰性,特別是在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) 目錄的路徑場景:

  • 32 位元Windows
  • 在64 位元Windows上執行的 32 位元程式
  • 在 64 位元 Windows 上執行的 64 位元程式

該函數依賴 IntPtr.Size 和PROCESSOR_ARCHITEW6432 環境變數決定係統的架構。如果架構是 x64,它將擷取 Program Files (x86) 資料夾的路徑,否則傳回 32 位元 Program Files 資料夾的路徑。

透過使用此函數,開發人員現在可以可靠地存取64位元Windows系統中的Program Files (x86)目錄,確保其程式能夠正確偵測到x86相容的應用程式並與之互動。

以上是如何在 64 位元 Windows 中可靠地取得 Program Files (x86) 路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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