プログラミング C# - 翔ソフトウェア (Sho's)

C#/.NET/ソフトウェア開発など

Windows 及び Internet Explorer のバージョンを調べる

■ 概要

C# で Windows 及び Internet Explorer のバージョンを調べる方法を示す。

■ 解説

C# での Windows のバージョンの取得方法

Windows のバージョンは、System.Environment.OSVersion.Version で取得できる。

例えば、Windows 8 のバージョンは "6.2.9200.0" ですが、メジャー バージョンである最初の 6 だけを得たい場合は、System.Environment.OSVersion.Version.Major で int として取得できる。

ちなみに、マイナー バージョンの 2 の部分の取得には、System.Environment.OSVersion.Version.Minor を使う。

C# での Internet Explorer のバージョンの取得方法

Internet Explorer のバージョンはレジストリで確認することができる。

レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer の Version の値や svcVersion の値で確認できる (Internet Explorer 9 以前は Version、Internet Explorer 10 は svcVersion)。

下のサンプル コードでは、Registry.LocalMachine.OpenSubKey メソッドでキーをオープンし、キーの GetValue メソッドで値を取得している。

ちなみに、Internet Explorer のバージョンは次のサイトで確認することができる。

例えば、Windows 8Internet Explorer 10 では、"10.0.9200.16384" だ。

■ サンプル コード

using Microsoft.Win32; 
using System; 

namespace IEVersionChecker 
{ 
    public static class VersionChecker 
    { 
        public static Version WindowsVersion 
        { 
            get { return Environment.OSVersion.Version; } 
        } 

        public static int WindowsMajorVersion 
        { 
            get { return WindowsVersion.Major; } 
        } 

        public static string InternetExplorerVersion // 取得失敗時は null 
        { 
            get 
            { 
                const string internetExplorerKeyName = @"SOFTWARE\Microsoft\Internet Explorer"; // レジストリのこの場所を確認 
                const string svcVersionValueName = "svcVersion"; // Internet Explorer 10 からはこれの値でチェック 
                const string versionValueName = "Version" ; // Internet Explorer 9 以前はこれの値でチェック 

                try { 
                    using (var key = Registry.LocalMachine.OpenSubKey(internetExplorerKeyName)) { 
                        return (string)(key.GetValue(svcVersionValueName) ?? key.GetValue(versionValueName)); 
                    } 
                } catch (Exception) { 
                    return null; 
                } 
            } 
        } 

        public static int InternetExplorerMajorVersion // 取得失敗時は 0 
        { 
            get 
            { 
                var internetExplorerVersion = InternetExplorerVersion; 
                if (!string.IsNullOrWhiteSpace(internetExplorerVersion)) { 
                    var versionTexts = internetExplorerVersion.Split(new Char[] { '.' }); 
                    if (versionTexts.Length > 0) { 
                        int majorVersion; 
                        if (int.TryParse(versionTexts[0], out majorVersion)) 
                            return majorVersion; 
                    } 
                } 
                return 0; 
            } 
        } 
    } 

    class Program 
    { 
        static void Main() 
        { 
            Console.WriteLine("Windows のバージョンは、{0}。", VersionChecker.WindowsVersion); 
            Console.WriteLine("Windows のメジャー バージョンは、{0}。", VersionChecker.WindowsMajorVersion); 
            Console.WriteLine("Internet Explorer のバージョンは、{0}。", VersionChecker.InternetExplorerVersion); 
            Console.WriteLine("Internet Explorer のメジャー バージョンは、{0}。", VersionChecker.InternetExplorerMajorVersion); 
        } 
    } 
}

■ 実行方法

  1. Windows 上の Visual Studio 2012 以降で「コンソール アプリケーション Visual C#」を新規作成し、Program.cs を上のものに書き換える。
  2. メニューの「デバッグ」-「デバッグなしで開始」を選択するか、Ctrl + F5 キーを押して実行する。
  3.  コマンド プロンプトが起動し、例えば次のように表示される。
Windows のバージョンは、6.2.9200.0。
Windows のメジャー バージョンは、6。
Internet Explorer のバージョンは、10.0.9200.16635。
Internet Explorer のメジャー バージョンは、10。
続行するには何かキーを押してください . . .