ID Artikel: 307394 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0

Cara menentukan versi Windows dengan menggunakan Visual C++

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini menunjukkan bagaimana untuk menentukan yang beroperasi sistem ini digunakan pada sistem di mana aplikasi Anda berjalan. Itu membedakan antara Windows 95, Windows 98, Windows Millennium Edition, Windows NT 3.51, Windows NT 4.0, Windows 2000 dan Windows XP.

Persyaratan

Artikel ini mengasumsikan bahwa Anda memiliki tingkat menengah pemahaman tentang pemrograman C++.

Windows versi Data

Untuk menentukan sistem operasi yang berjalan di tertentu sistem, data berikut diperlukan:

Perkecil tabel iniPerbesar tabel ini
Windows 95Windows 98Windows SAYAWindows NT 4Windows 2000Windows XP
PlatformID 1 1 12 2 2
Versi utama 4 4 44 5 5
Versi minor 0 10 900 0 1

CATATAN: Meskipun kode dalam artikel ini memeriksa semua 32-bit Windows versi, tidak Visual Studio.NET maupun.NET Framework adalah didukung pada Windows 95 atau Windows NT 3.51.

Memperoleh informasi sistem operasi

Membuat sebuah pointer ke kelas OperatingSystem dan menetapkan sistem operasi informasi untuk itu:
System::OperatingSystem *osInfo = System::Environment::OSVersion;
				

Menentukan Platform ID

Langkah pertama dalam evaluasi logis dari sistem operasi informasi ini untuk menentukan platform yang digunakan, seperti yang ditunjukkan di bawah ini. Ini adalah dilakukan dengan menggunakan PlatformID. PlatformID adalah properti dari OperatingSystem kelas. Nilai disebutkan "Win32Windows" berarti operasi sistem Windows 9x keluarga produk. "WinNT" menunjukkan sistem operasi Windows NT keluarga.
switch(osInfo->Platform)
    {
        case System::PlatformID::Win32Windows:         
            {
             //code to determine specific Windows 9x version
            }

       case System::PlatformID::Win32NT:
           {
              //code to determine specific Windows NT version
           }
       
     }
				

Menentukan Windows tertentu 9x Versi

Jika platform yang telah ditentukan untuk menjadi Windows 9x, versi besar atau kecil dapat dianalisis untuk menentukan Versi tertentu, sebagai kode berikut menunjukkan.
//platform is win9x
case System::PlatformID::Win32Windows:
     
switch (osInfo->Version->Minor)
    {
        case 0:
            Console::WriteLine ("Windows 95");
            break;
        case 10:
            if(osInfo->Version->Revision.ToString()=="2222A")
                Console::WriteLine("Windows 98 Second Edition");
            else
                 Console::WriteLine("Windows 98");
                 break;
        case  90:
                 Console::WriteLine("Windows ME");
                 break;
     }break;
     

				

Menentukan versi Windows NT tertentu

Jika platform yang telah ditentukan untuk menjadi Windows NT, utama atau versi kecil dapat dianalisis untuk menentukan versi tertentu:
//platform is NT
case System::PlatformID::Win32NT:

switch(osInfo->Version->Major)
    {
        case 3:
            Console::WriteLine("Windows NT 3.51");
            break;
        case 4:
            Console::WriteLine("Windows NT 4.0");
            break;
        case 5:
            if (osInfo->Version->Minor==0) 
                Console::WriteLine("Windows 2000");
            else
                Console::WriteLine("Windows XP");
                break;
     }break;
				

Membangun contoh

Langkah-langkah berikut menunjukkan bagaimana Anda dapat membangun sebuah skenario pengujian untuk menunjukkan fungsionalitas ini.
  1. Dalam Visual Studio.NET, membuat aplikasi berhasil C++ baru disebut determine0S. Ini menciptakan sederhana "hello world" aplikasi. Buka DetermineOS.cpp di editor kode dengan mengklik dua kali dalam jendela Explorer solusi.
  2. Menghapus semua kode di DetermineOS.cpp.
  3. Paste kode berikut:
    #include "stdafx.h"
    
    #using <mscorlib.dll>
    
    using namespace System;
    
    // This is the entry point for this application
    #ifdef _UNICODE
    int wmain(void)
    #else
    int main(void)
    #endif
    {
       //get OperatingSystem info from the system namespace
       System::OperatingSystem *osInfo = System::Environment::OSVersion;
    
       //is the platform win9x or NT
       switch(osInfo->Platform)
       {
          //platform is win9x
          case System::PlatformID::Win32Windows:
        
             switch (osInfo->Version->Minor)
             {
                  case 0:
                     Console::WriteLine ("Windows 95");
                  break;
                  case 10:
                  if(osInfo->Version->Revision.ToString() == "2222A")
                     Console::WriteLine("Windows 98 Second Edition");
                  else
                     Console::WriteLine("Windows 98");
                  break;
                  case  90:
                     Console::WriteLine("Windows ME");
                  break;
             }
             break;
    			
             //platform is NT
             case System::PlatformID::Win32NT:
    
                switch(osInfo->Version->Major)
                {
                   case 3:
                      Console::WriteLine("Windows NT 3.51");
                   break;
                   case 4:
                      Console::WriteLine("Windows NT 4.0");
                   break;
                   case 5:
                   if (osInfo->Version->Minor==0) 
                      Console::WriteLine("Windows 2000");
                   else
                      Console::WriteLine("Windows XP");
                   break;
                }break;
       }
    
       Console::ReadLine();
       return 0;
    }
    					
  4. Tekan CTRL + F5 untuk menjalankan aplikasi. Perhatikan bahwa jendela Versi akan ditampilkan di jendela konsol.

REFERENSI

Untuk lebih banyak informasi umum tentang Visual C++.NET, kunjungan berikut Microsoft Usenet newsgroup dan Microsoft Web site:
Microsoft.Public.DotNet.Languages.VC (http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?query=Microsoft.public.dotnet.languages.vc+&dg=&cat=en_US_d02fc761-3f6b-402c-82f6-ba1a8875c1a7&lang=en&cr=&pt=&catlist=&dglist=&ptlist=&exp=&sloc=en-us)

Visual C++.Pusat dukungan bersih (2002) (http://support.microsoft.com/default.aspx?xmlid=fh%3BEN-US%3Bvcnet)

Berlaku bagi:
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ 2005 Express Edition
Kata kunci: 
kbhowtomaster kbnewsgrouplink kbmt KB307394 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:307394  (http://support.microsoft.com/kb/307394/en-us/ )