0

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

语言 = c#

4

3 回答 3

3

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

嗯?

更完整的答案在这里

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

于 2009-12-19T01:34:33.597 回答
3

您不能在 C# 中执行此操作。您必须创建一个本机 Win32 dll。换句话说:创建一个 C++ 项目。这不是那么可怕。

添加 Win32 项目 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)]    
于 2010-03-17T13:17:49.803 回答
2

我找到了一个方法。我必须将图像添加到 SnapIn 的 SmallImages 集合中。

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

于 2009-12-22T14:12:52.213 回答