|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Registering Shell Extensions
A shell extension must be registered in the registry database. The class identifier of each handler must be registered under the HKEY_CLASSES_ROOT\CLSID key. The CLSID key contains a list of class identifier key values, such as {00030000-0000-0000-C000-000000000046}. Each class identifier key is a globally unique identifier (GUID) generated by the UUIDGEN tool. Within each class identifier key, the handler adds an InProcServer32 key that gives the location of the handler's DLL. It is best to give the complete path for the handler; using the complete path keeps the handler independent of the current path and speeds up the load time for the DLL.
The information that the shell uses to associate a shell extension handler with a file type is stored under the shellex key. The shell also uses several other special keys under HKEY_CLASSES_ROOT to look for shell extensions: *, Folder, Drives, Printers, and keys for network providers. Descriptions of the keys follow:
· You can use the * key to register handlers that the shell calls whenever it creates a context menu or property sheet for a file object in the following manner.
HKEY_CLASSES_ROOT * = * shellex ContextMenuHandlers {00000000-1111-2222-3333-00000000000001} PropertySheetHandlers {00000000-1111-2222-3333-00000000000002}
The shell uses instances of the ExtraMenu and SummaryInfo handlers to add to the context menus and property sheets for every file object. · You can use Folder key to register a shell extension for directories in the file system. You can register context menu handlers, copy hook handlers, and property sheet handlers in the same way you register these handlers for the * key. An additional handler, the drag and drop handler, applies only to the Folder and Printers keys. An example showing the Folder key follows.
Folder = Folder shellex DragDropHandlers {00000000-1111-2222-3333-00000000000004} CopyHookHandlers {00000000-1111-2222-3333-00000000000005}
· You can use the Drives key for the same registrations as the Folder key, but the Drives key is called only for root paths (for example, C: \). · The Printers key allows the same registrations as the Folder key, but it uses additional handlers for printer events, deletion or removal of printers (through the copy hook handler), and printer properties (with property sheet handlers and context menu handlers).
To avoid conflicts with other classes, you must use real GUIDs, not the sample strings shown in the previous examples.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Регистр Расширений Оболочки
Расширение оболочки должно быть зарегистрировано в базе данных регистрации. Идентификатор класса каждого вручителя должен быть зарегистрирован под клавишей HKEY_CLASSES_ROOT\CLSID. Клавиша CLSID содержит список идентификатора класса ключевых величин, как например, {00030000-0000-0000-C000-000000000046}. Каждая клавиша идентификатора класса является глобально уникальным идентификатором (GUID) сгенерированным средством UUIDGEN. В пределах каждой клавиши идентификатора класса, вручитель добавляет клавишу InProcServer32, которая дает позицию вручителя DLL. Лучще всего давать полный путь для вручителя; использование полный путь держит вручителя независимого текущего пути и ускоряет время загрузки для DLL.
Информация, что оболочка использует, чтобы соединять вручителя расширения оболочки с файловым типом загружен под клавишей shellex. Оболочка также использует несколько других специальных клавиш под HKEY_CLASSES_ROOT, чтобы искать расширения оболочки: *, Папка, Накопители, Принтеры, и клавиши для сетевых поставщиков. Описания клавиш следуют:
Вы можете использовать the * клавиша, чтобы регистрировать вручителей, что оболочка называет всякий раз, когда она создает контекстное меню или лист свойства для файлового объекта в следующем способе.
HKEY_CLASSES_ROOT * = * shellex ContextMenuHandlers {00000000-1111-2222-3333-00000000000001} PropertySheetHandlers {00000000-1111-2222-3333-00000000000002}
Оболочка использует примеры ExtraMenu и вручителей SummaryInfo, чтобы добавлять к контекстным меню и листам свойства для каждого файлового объекта. Вы можете использовать клавишу Папки, чтобы регистрировать расширение оболочки для директориев в файловой системе. Вы можете зарегистрировать контекстных вручителей меню, копировать рычажных вручителей, и листовых вручителей свойства так же Вы регистрируете этих вручителей для the * клавиша. Дополнительный вручитель, вручитель перераспределения, относится только к клавишам Папки и Принтеров. Пример, показывающий, что клавиша Папки следует.
Папка = Папки shellex DragDropHandlers {00000000-1111-2222-3333-00000000000004} CopyHookHandlers {00000000-1111-2222-3333-00000000000005}
Вы можете использовать клавишу Накопителей для тех же регистраций как клавиша Папки, но клавиша Накопителей называется только к корневым путям (например, C: \). Клавиша Принтеров допускает те же регистрации как клавишу Папки, но это использует дополнительным вручителям для событий принтера, удаления или удаления принтеров (через рычажного вручителя копии), и свойства принтера (с листовыми вручителями свойства и контекстных вручителей меню).
Для того, чтобы избегать конфликтов с другими классами, Вы должны использовать реальный GUIDs, не строки образца показанные в предшествующих примерах.
|
|
|
|
| |