Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Laluan Program Fail (x86) secara Program pada Windows 64-bit?

Bagaimanakah Saya Boleh Mendapatkan Laluan Program Fail (x86) secara Program pada Windows 64-bit?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-26 15:59:11408semak imbas

How Can I Programmatically Retrieve the Program Files (x86) Path on 64-bit Windows?

Mendapatkan semula Laluan Program Files (x86) pada Sistem Windows 64-bit

Dalam usaha untuk mengesan aplikasi MS-DOS lama pada mesin pengguna, perkara biasa pendekatan melibatkan menyemak folder Program Files menggunakan kod seperti ini:

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

Sementara ini berfungsi pada Windows XP dan Vista 32-bit, ia gagal pada Vista 64-bit kerana kod tersebut mengembalikan folder Program Files 64-bit dan bukannya folder Program Files x86 di mana aplikasi biasanya dipasang.

Mengambil semula Fail Program x86 Path Secara Program

Untuk menangani isu ini, penyelesaian terprogram diperlukan untuk mengembalikan laluan ke Program Failkan folder x86 tanpa mengira konfigurasi sistem. Fungsi berikut memenuhi keperluan ini:

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

    return Environment.GetEnvironmentVariable("ProgramFiles");
}

Fungsi ini mengenal pasti dan mengembalikan laluan ke folder yang dikehendaki dengan mempertimbangkan bitness sistem dan kehadiran pembolehubah persekitaran tertentu. Ia mengendalikan konfigurasi berikut:

  • Windows 32-bit
  • program 32-bit yang dijalankan pada Windows 64-bit
  • program 64-bit yang dijalankan pada 64-bit Windows

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Laluan Program Fail (x86) secara Program pada 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