OSFeatureクラスを使用して、現在のOS(Windows)にテーマ機能やレイヤードウィンドウ機能がインストールされているか調べることができます。テーマ機能は、Microsoft Plus! for Windows 95から導入された機能です。レイヤードウィンドウ機能は、Windows 2000から導入された機能で、ウィンドウを透明あるいは半透明にできる機能です。
具体的な例を示します。以下の例では、OSFeatureクラスのIsPresentメソッドを使う方法と、GetVersionPresentメソッドを使う方法の2つを紹介しています。テーマやレイヤードウィンドウ機能がインストールされている時GetVersionPresentメソッドは常に"0.0.0.0"を返すようなので、バージョンの値に意味はないようです。
'テーマ機能がインストールされているか調べる 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
//テーマ機能がインストールされているか調べる 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("レイヤードウィンドウ機能はインストールされていせん"); }
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。