#windows #shell #registry #directory #contextmenu
#Windows #оболочка #реестр #каталог #контекстное меню
Вопрос:
Я хочу создать небольшую программу, которая блокирует папки паролем и снова разблокирует с помощью этого пароля. Я могу сделать это, добавив некоторые специальные идентификаторы классов к имени папки. (https://www.codeproject.com/Articles/20880/Folder-protection-for-Windows-using-Csharp-and-con )
Кроме того, я хочу добавить эту функцию в контекстное меню правой кнопки мыши Windows для папок.(-> Заблокировать и разблокировать эту папку)
Я могу успешно добавлять новые элементы в папки через «HKEY_CLASSES_ROOTHKEY_CLASSES_ROOT Directory shell». Кажется, что папка не заблокирована. Но после блокировки папки элемент не отображается в контексте щелчка правой кнопкой мыши. Я пробовал с несколькими узлами regedit, но ни у кого не получилось.
Как я могу добавить новый элемент в контекст щелчка правой кнопкой мыши всех папок (включая заблокированные папки)?
Ответ №1:
Вам необходимо зарегистрировать свою команду в ключе для CLSID, который вы использовали для «блокировки» папки.
Если вы используете «lock GUID» ({2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}), то вы должны добавить свой глагол в «HKEY_CLASSES_ROOT CLSID{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}shell»
Комментарии:
1. Большое спасибо! После предоставления некоторых разрешений он может быть успешно добавлен. Итак, как насчет предоставления этих разрешений при добавлении ключей regedit с помощью программы C #. Нужно ли будет предоставлять эти разрешения при установке программы locker на новый компьютер? Могу ли я предоставить эти разрешения с помощью кода c # или я должен сделать это вручную из regedit?
2. Вы можете добавить запись в HKCUSoftware Classes CLSID{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}shell …, это для каждого пользователя и не требует доступа администратора.