Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menentukan Lokasi Program Fail (x86) secara Program dalam Windows 64-bit?

Bagaimana untuk Menentukan Lokasi Program Fail (x86) secara Program dalam Windows 64-bit?

Linda Hamilton
Linda Hamiltonasal
2024-12-30 16:57:14335semak imbas

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

Penentuan Lokasi Fail Program (x86) dalam Windows 64-Bit

Dalam percubaan untuk mengesan kehadiran aplikasi, anda menggunakan `FileInfo(

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

)`. Walaupun pendekatan ini mencukupi untuk versi Windows 32-bit, ia menghadapi isu dalam x64 Windows Vista, di mana ia mendapatkan semula folder Program Files x64 dan bukannya lokasi Program Files (x86) yang dimaksudkan.

Untuk menyelesaikan masalah ini, kami perlu mencari kaedah pengaturcaraan untuk mendapatkan semula laluan ke Program Files (x86) tanpa menggunakan hardcoding "C: Program Files (x86)".

Penyelesaian

Fungsi berikut dengan tepat memenuhi keperluan ini:

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

    return Environment.GetEnvironmentVariable("ProgramFiles");
}

Fungsi ini mengembalikan direktori Fail Program x86 dalam tiga senario berbeza dengan pasti:

  • 32-bit Windows
  • Atur cara 32-bit berjalan pada Windows 64-bit
  • Atur cara 64-bit berjalan pada Windows 64-bit

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Lokasi Program Fail (x86) secara Program dalam Windows 64-bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn