* 環境設定やDLLの追加などは以下を参照。ここでは、プログラムの実装だけを記入するhttp://blogs.yahoo.co.jp/dk521123/31319482.html
http://blogs.yahoo.co.jp/dk521123/31598064.html
http://blogs.yahoo.co.jp/dk521123/31586051.html
作成するファイル
■クラスファイル * PropertySheetSnapIn.cshttp://blogs.yahoo.co.jp/dk521123/31629756.html
* UserListView.cshttp://blogs.yahoo.co.jp/dk521123/31635795.html
* ScopePropertyPage.cshttp://blogs.yahoo.co.jp/dk521123/31647650.html
* ScopePropertiesControl.cs(UserControl/TextBox1) => スコープのプロパティを選択した場合の画面http://blogs.yahoo.co.jp/dk521123/31636230.html
* UserPropertyPage.cshttp://blogs.yahoo.co.jp/dk521123/31647879.html
* UserPropertyControl.cs(UserControl/TextBox1, TextBox2) => 詳細画面を右クリックし、プロパティを選択した場合の画面http://blogs.yahoo.co.jp/dk521123/31658219.html
サンプル
PropertySheetSnapIn.cs
using System.ComponentModel; using Microsoft.ManagementConsole; /// <summary> /// Allows the .Net framework to install the assembly. /// </summary> [RunInstaller(true)] public class InstallUtilSupport : SnapInInstaller { } /// <summary> /// Provides the main entry point for the creation of a snap-in. /// </summary> [SnapInSettings("{1D82C77F-AD17-4f6e-B61F-53BC121605A3}", // GUIDの作成で取得したIDを記入 DisplayName = "Property Sheet Sample", // ここが、MMCに追加する時のスナップイン名になる Vendor = "Sample Company", // ここが、MMCに追加する時のベンダー名になる Description = "User List with Property Sheet SnapIn")] public class PropertySheetSnapIn : SnapIn { /// <summary> /// Constructor /// </summary> public PropertySheetSnapIn() { // Create the snap-in node. ScopeNode scopeNode = new SampleScopeNode(); scopeNode.DisplayName = "Property Sheet Sample"; this.RootNode = scopeNode; this.RootNode.EnabledStandardVerbs = StandardVerbs.Properties; // Create result list view for the snap-in. MmcListViewDescription mmcListViewDescription = new MmcListViewDescription(); mmcListViewDescription.DisplayName = "User List with Properties"; mmcListViewDescription.ViewType = typeof(UserListView); mmcListViewDescription.Options = MmcListViewOptions.SingleSelect; scopeNode.ViewDescriptions.Add(mmcListViewDescription); scopeNode.ViewDescriptions.DefaultIndex = 0; } } /// <summary> /// /// </summary> public class SampleScopeNode : ScopeNode { /// <summary> /// Constructor /// </summary> public SampleScopeNode() { } /// <summary> /// OnAddPropertyPages is used to get the property pages to show. /// (triggered by Properties verbs) /// </summary> protected override void OnAddPropertyPages(PropertyPageCollection propertyPageCollection) { propertyPageCollection.Add(new ScopePropertyPage(this)); } }