Makale numarası: 307394 - Son Gözden Geçirme: 18 Ocak 2006 Çarşamba - Gözden geçirme: 1.5

Visual C++ kullanarak Windows'un nasıl

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, hangi işletim sistemini, uygulamanın çalıştığı sistemde kullanımda olduğunu belirlemek gösterilmiştir. Bu, Windows 95, Windows 98, Windows Millennium Edition, Windows NT 3.51, Windows NT 4.0, Windows 2000 ve Windows XP arasında ayırır.

Gereksinimler

Bu makalede, bir C++ programlama ara düzeyi biliyor olduğunuz varsayılır.

Windows sürüm verileri

Belirli bir sistemde çalışan işletim sistemini belirlemek için <a0></a0>, aşağıdaki verileri gereklidir:

Bu tabloyu kapaBu tabloyu aç
Windows 95Windows 98,Windows MeWindows NT 4WINDOWS 2000WINDOWS XP
PlatformID 1 1 1 2 2 2
Ana sürüm 4 4 4 4 5 5
Alt sürüm 0 10 90 0 0 1

Not: bu makaledeki kod tüm 32-bit Windows sürümleri için denetlemez, ancak ne Visual Studio .NET ve .NET Framework Windows 95 veya Windows NT 3.51 üzerinde desteklenir.

Işletim sistemi bilgilerini edinin.

OperatingSystem sınıfıyla bir işaretçi oluşturmak ve geçerli işletim sistemi bilgilerini atayın:
System::OperatingSystem *osInfo = System::Environment::OSVersion;
				

Platform KIMLIĞI belirler.

Işletim sistemi bilgilerinin mantıksal değerlendirmenin ilk adımı hangi platform, kullanımda aşağıda gösterildiği gibi belirlemektir. Bu işlem, PlatformID kullanılarak yapılır. OperatingSystem sınıfı PlatformID özelliğidir. Bir Enum değeri "Win32Windows" işletim sistemi Windows 9 x ailesi ürünleri anlamına gelir. "WinNT" Windows NT ailesinden bir işletim sistemini gösterir.
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
           }
       
     }
				

X sürümü belirli Windows 9 belirleme

Platform Windows 9 x olarak belirlendiğinde, aşağıdaki kod gösterir gibi birincil veya ikincil sürüm belirli bir sürümünü belirlemek için çözümlenebilir.
//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;
     

				

Belirli Windows NT sürümünü belirleme

Windows NT için platform belirlendiğinde, birincil veya ikincil sürüm belirli sürümünü belirlemek için çözümlenebilir:
//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;
				

Örnek oluşturma

Aşağıdaki adımlar, bu işlevselliği göstermek için bir sınama senaryosu oluşturmak gösterir.
  1. Visual Studio. NET'te determine0S adlı yeni bir C++ yönetilen uygulama oluşturun. Bu, "Dünyaya merhaba" basit bir uygulama oluşturur. Solution Explorer (Çözüm Gezgini) penceresinde çift tıklatarak, DetermineOS.cpp Kod düzenleyicisinde açın.
  2. Tüm kod DetermineOS.cpp silin.
  3. Aşağıdaki kodda Yapıştır:
    #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. Uygulamayı çalıştırmak için CTRL + F5 tuşuna basın. Dikkat Windows sürümü, konsol penceresinde görüntülenir.

Referanslar

Visual C++ .NET hakkında daha fazla genel bilgi için aşağıdaki Microsoft Usenet haber grubu ve Microsoft Web sitesini ziyaret edin:
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++ .NET (2002) Support Center (http://support.microsoft.com/default.aspx?xmlid=fh%3ben-us%3bvcnet)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ 2005 Express Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster kbnewsgrouplink KB307394 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:307394  (http://support.microsoft.com/kb/307394/en-us/ )