пользовательский значок оснастки mmc - PullRequest
0 голосов
/ 19 декабря 2009

Рассмотрим, как предоставить значок для моих пользовательских оснасток mmc.

Language = c #

Ответы [ 3 ]

3 голосов
/ 17 марта 2010

Вы не можете сделать это в C #. Вы должны создать родной Win32 DLL. Другими словами: создайте проект C ++. Это не так страшно.

После добавления Win32 Project Visual C ++ вы можете использовать мастер для добавления файла ресурсов. Оттуда вы можете использовать инструменты, чтобы добавить значок и текстовые описания.

Если все пойдет правильно, у вас будет файл 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, ... являются числами, которые должны соответствовать атрибуту SnapInAbout, который вы вставили в свой файл C #.

[SnapInAbout("Your.Unmanaged.dll", ApplicationBaseRelative = true, 
 VendorId = 104, DisplayNameId = 105, DescriptionId = 106, IconId = 103,
 SmallFolderBitmapId = 110, LargeFolderBitmapId = 102, 
 SmallFolderSelectedBitmapId = 101)]    
3 голосов
/ 19 декабря 2009

Если вы хотите предоставить растровые изображения для вашей DLL в диалоговом окне Добавить / удалить в MMC, вам нужно указать атрибут SnapInAbout , предоставить Resource DLL и идентификатор для растрового изображения. ,

А?

Более полный ответ здесь .

А также в примере MMC SDK есть рабочий код.

2 голосов
/ 22 декабря 2009

Я нашел способ. Мне пришлось добавить изображения в коллекцию SmallImages SnapIn.

И затем у каждого scopenode есть ImageIndex и SelectedImageIndex. Все, что вам нужно, это установить для этого свойства правильный индекс коллекции SmallImages.

...