DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

現在のOSにテーマやレイヤードウィンドウ機能がインストールされているか調べる

OSFeatureクラスを使用して、現在のOS(Windows)にテーマ機能やレイヤードウィンドウ機能がインストールされているか調べることができます。テーマ機能は、Microsoft Plus! for Windows 95から導入された機能です。レイヤードウィンドウ機能は、Windows 2000から導入された機能で、ウィンドウを透明あるいは半透明にできる機能です。

具体的な例を示します。以下の例では、OSFeatureクラスIsPresentメソッドを使う方法と、GetVersionPresentメソッドを使う方法の2つを紹介しています。テーマやレイヤードウィンドウ機能がインストールされている時GetVersionPresentメソッドは常に"0.0.0.0"を返すようなので、バージョンの値に意味はないようです。

VB.NET
コードを隠すコードを選択
'テーマ機能がインストールされているか調べる 
If System.Windows.Forms.OSFeature.Feature.IsPresent( _
        System.Windows.Forms.OSFeature.Themes) Then
    Console.WriteLine("テーマ機能がインストールされています")
Else
    Console.WriteLine("テーマ機能はインストールされていせん")
End If

Dim themesVersion As Version = System.Windows.Forms.OSFeature.Feature.GetVersionPresent( _
    System.Windows.Forms.OSFeature.Themes)
If themesVersion IsNot Nothing Then
    Console.WriteLine("テーマ機能がインストールされています")
Else
    Console.WriteLine("テーマ機能はインストールされていせん")
End If

'レイヤードトップレベルウィンドウ機能がインストールされているか調べる 
If System.Windows.Forms.OSFeature.Feature.IsPresent( _
        System.Windows.Forms.OSFeature.LayeredWindows) Then
    Console.WriteLine("レイヤードウィンドウ機能がインストールされています")
Else
    Console.WriteLine("レイヤードウィンドウ機能はインストールされていせん")
End If

Dim lwVersion As Version = System.Windows.Forms.OSFeature.Feature.GetVersionPresent( _
    System.Windows.Forms.OSFeature.LayeredWindows)
If lwVersion IsNot Nothing Then
    Console.WriteLine("レイヤードウィンドウ機能がインストールされています")
Else
    Console.WriteLine("レイヤードウィンドウ機能はインストールされていせん")
End If
C#
コードを隠すコードを選択
//テーマ機能がインストールされているか調べる
if (System.Windows.Forms.OSFeature.Feature.IsPresent(
    System.Windows.Forms.OSFeature.Themes))
{
    Console.WriteLine("テーマ機能がインストールされています");
}
else
{
    Console.WriteLine("テーマ機能はインストールされていせん");
}

Version themesVersion = System.Windows.Forms.OSFeature.Feature.GetVersionPresent(
    System.Windows.Forms.OSFeature.Themes);
if (themesVersion != null)
{
    Console.WriteLine("テーマ機能がインストールされています");
}
else
{
    Console.WriteLine("テーマ機能はインストールされていせん");
}

//レイヤードトップレベルウィンドウ機能がインストールされているか調べる
if (System.Windows.Forms.OSFeature.Feature.IsPresent(
    System.Windows.Forms.OSFeature.LayeredWindows))
{
    Console.WriteLine("レイヤードウィンドウ機能がインストールされています");
}
else
{
    Console.WriteLine("レイヤードウィンドウ機能はインストールされていせん");
}

Version lwVersion = System.Windows.Forms.OSFeature.Feature.GetVersionPresent(
    System.Windows.Forms.OSFeature.LayeredWindows);
if (lwVersion != null)
{
    Console.WriteLine("レイヤードウィンドウ機能がインストールされています");
}
else
{
    Console.WriteLine("レイヤードウィンドウ機能はインストールされていせん");
}

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。