首頁 >後端開發 >C++ >如何以程式設計方式確定 64 位元 Windows 中的程式檔案 (x86) 位置?

如何以程式設計方式確定 64 位元 Windows 中的程式檔案 (x86) 位置?

Linda Hamilton
Linda Hamilton原創
2024-12-30 16:57:14347瀏覽

How to Programmatically Determine the Program Files (x86) Location in 64-bit Windows?

Windows 64 位元中的程式檔案(x86) 位置決定

在嘗試偵測應用程式是否存在時,您正在使用`FileInfo(

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

)`。雖然此方法對於 32 位元 Windows 版本來說足夠了,但它在 x64 Windows Vista 中遇到問題,它會檢索 x64 Program Files 資料夾而不是預期的 Program Files (x86) 位置。

為了解決此問題,我們需要找到一種程式方法來擷取 Program Files (x86) 的路徑,而無需訴諸硬編碼「C: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");
}

此函數在三種不同的情況下可靠地返回x86 Program Files 目錄:

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

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

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