2011-05-23 6 views
2

ウィンドウでOSのバージョン、OS名を取得するには、次の点で優れている1 - XP、Vistaと高い os name、windowsのバージョンを取得するには?

システムのシステム情報などのすべてのWindows OSに情報

  • 互換性を得ることに

    1. 時間またはwmicコマンド?私は、マーケティング名の検出をハードコードする必要があるため、OSVersionInfoExの使用を避けたいと考えていました。新しいウィンドウが導入されれば、メンテナンス作業に追加されます。あなたの意見をお寄せください。

  • 答えて

    4

    GetVersionEx - 基本的なOSのバージョン番号を取得するためのこれ以上の速度を得ることはできません。しかし、あなたが正しいです、あなたは正しい文字列にOSの新しいバージョンをマップすることができなくなります。

    OSVERSIONINFOEX version = {}; 
    char szOS[MAX_OS_LENGTH]; 
    
    version.dwOSVersionInfoSize = sizeof(version); 
    GetVersionEx((OSVERSIONINFO*)&version); 
    
    if (MyFunctionToMapVersionToString(&version, szOS) == false) 
    { 
        sprintf(szOS, "Microsoft Windows %d.%d", version.dwMajorVersion, version.dwMinorVersion); 
    } 
    

    WMI - もう少し書くだけのコードです。しかし、アプリの起動時(または必要なとき)にこれを行い、情報が必要な場合は結果をキャッシュすることができます。それは、オペレーティングシステムの製品名は、アプリがそれを一度問い合わせた後に変更されるようではない。 :)下位互換性に関しては、古いオペレーティングシステムでは正常に動作するとは思いますが、顧客に出荷する前にテストするつもりですよね?

    あなたが文書化されていない方法をしたい場合は、あなたがそれにしたい正確に何を持っているレジストリキーがあります:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion ("ProductName") 
    
    関連する問題