自定义mmc管理单元图标

时间:2009-12-18 22:24:00

标签: c# .net mmc snap-in

了解如何为我的自定义mmc管理单元提供图标。

语言= c#

3 个答案:

答案 0 :(得分:3)

如果您想要在MMC的“添加/删除”对话框中提供DLL的位图,则需要指定SnapInAbout属性,并提供资源DLL和位图的ID。

咦?

<强> More complete answer here

在MMC SDK示例中,还有工作代码。

答案 1 :(得分:3)

你不能在C#中这样做。您必须创建本机Win32 DLL。换句话说:创建一个C ++项目。这不是那么可怕。

添加Win32 Project Visual C ++后,可以使用该向导添加资源文件。 从那里,您可以使用工具添加图标和文本说明。

如果一切正常,您将在“Header Files”文件夹中生成resource.h文件。打开该文件,您将看到类似

的内容
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by ConsoleResources.rc
//
#define IDB_BITMAP4                     101
#define IDB_BITMAP5                     102
#define IDI_ICON2                       103
#define IDS_COMPANY                     104
#define IDS_PRODUCT_NAME                105
#define IDS_DESCRIPTION                 106

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        107
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1001
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

这些数字101,...是必须与放在C#文件中的SnapInAbout属性对应的数字。

[SnapInAbout("Your.Unmanaged.dll", ApplicationBaseRelative = true, 
 VendorId = 104, DisplayNameId = 105, DescriptionId = 106, IconId = 103,
 SmallFolderBitmapId = 110, LargeFolderBitmapId = 102, 
 SmallFolderSelectedBitmapId = 101)]    

答案 2 :(得分:2)

我发现了一种方法。我不得不将图像添加到SnapIn的SmallImages集合中。

然后每个scopenode都有一个ImageIndex和SelectedImageIndex。您只需将这些属性设置为SmallImages集合的正确索引。