Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengesan Versi Windows 10 Tertentu Merentasi Pelbagai Platform?

Bagaimanakah Saya Boleh Mengesan Versi Windows 10 Tertentu Merentasi Pelbagai Platform?

Linda Hamilton
Lepaskan: 2024-11-05 10:17:02
asal
968 orang telah melayarinya

How Can I Detect the Specific Windows 10 Version Across Multiple Platforms?

Mengesan Versi Windows 10 Merentas Platform

Objektif:

Tentukan versi khusus Windows 10 yang digunakan secara silang -pangkalan kod platform yang menyasarkan Windows 7 dan lebih baru.

Cabaran:

Windows menyediakan fungsi IsWindows10OrGreater(), tetapi ia tidak tersedia dalam versi Windows yang lebih lama dan mungkin tidak melaporkan versi OS utama dengan tepat.

Penyelesaian:

Gunakan fungsi RtlGetVersion dalam pendekatan serasi silang versi:

<code class="c++">typedef LONG NTSTATUS, *PNTSTATUS;
#define STATUS_SUCCESS (0x00000000)

typedef NTSTATUS (WINAPI* RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);

RTL_OSVERSIONINFOW GetRealOSVersion() {
    HMODULE hMod = ::GetModuleHandleW(L"ntdll.dll");
    ... (Module handle and function lookup code) ...
        RTL_OSVERSIONINFOW rovi = { 0 };
        rovi.dwOSVersionInfoSize = sizeof(rovi);
        if ( STATUS_SUCCESS == fxPtr(&amp;rovi) ) {
            return rovi;
        }
    ... (Error handling code) ...
}</code>
Salin selepas log masuk

Fungsi ini mendapatkan semula versi OS sebenar pada Windows 10 dengan tepat, walaupun tanpa manifes.

Pendekatan Alternatif:

Untuk keserasian yang lebih baik dan kalis masa hadapan, pertimbangkan untuk menentukan ciri keperluan dan bukannya versi OS tertentu. Ini memastikan bahawa kod anda berkelakuan secara konsisten merentas versi Windows yang berbeza dengan keupayaan yang berbeza-beza.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Versi Windows 10 Tertentu Merentasi Pelbagai Platform?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan