Показать полную графическую версию : Создание объектов в "Мой компьютер"
Подскажите пожалуйста, как можно в папке "Мой компьютер" создать ссылку на собственный объект?
Ничего необчного не нужно, нужна просто ссылка на одну папку. И чтобы она таким образом была видна в древовидном меню "Проводника" наряду с логическими дисками и "Панелью управления".
Извиняюсь заранее, если подобные вопросы задаются каждый день, но поиском я ничего не нашел :(
Было где-то, но с разбегу и сам не нашел :)
Пробуем делать так:
1) создайте идентификатор своей папки в ветках HKEY_CLASSES_ROOT\CLSID и HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\CLSID такого же вида как там уже существуют, например {912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A} - здесь дайте волю фантазии, значение произвольное, а можете и этот взять.
2) В созданном подразделе создавайте строковый (REG_SZ) параметр по умолчанию со значением равным имени папки которое хотите чтоб отображалось:
HKEY_CLASSES_ROOT\CLSID\{912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A}
Параметр: (По умолчанию)
Значение: Своя папка
3) Создайте в новом разделе подраздел DefaultIcon, а в нем строковый параметр со значением равным пути к *.ico файлу - файлу иконки папки:
HKEY_CLASSES_ROOT\CLSID\{912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A}\DefaultIcon
Параметр: (По умолчанию)
Значение: c:\myicon.ico (например)
4) Затем еще подраздел InProcServer32 и в нем два также строковых параметра - по умолчанию и ThreadingModel, значение первого shell32.dll, значение второго Apartment:
HKEY_CLASSES_ROOT\CLSID\{912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A}\InProcServer32
Параметр: (По умолчанию)
Значение: shell32.dll
Параметр: ThreadingModel
Значение: Apartment
5) Создайте подраздел Shell, в нем подраздел Open, а в этом Command, значение параметра по умолчанию = команда открытия вашей папки:
HKEY_CLASSES_ROOT\CLSID\{912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A}\Shell\Open\Command
Параметр: (По умолчанию)
Значение: C:\Windows\explorer /n / root, C:\MyFolder
где C:\MyFolder - путь к вашей папке
6) После этого еще подраздел ShellEx, в нем PropertySheetHandler, а в нем свой идентификатор, то есть {912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A}
здесь параметры вроде как не нужны:
HKEY_CLASSES_ROOT\CLSID\{912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A}\ShellEx\PropertySheetHandler\{912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A}
7) Еще один подраздел: ShellFolder, а в нем двоичный параметр (REG_BINARY) Attributes:
HKEY_CLASSES_ROOT\CLSID\{912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A}\ShellFolder
Параметр: Attributes
Значение: hex:00,00,00,00
8) Теперь разместим папку в Моем компьютере и если надо на рабочем столе:
В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\
создайте подраздел со своим идентификатором {912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A} - это для отображения на рабочем столе
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{912251E4-9C9C-44D9-8BDE-F66BAD1E3F3A} - для отображения в Моем компьютере
Вроде все, должно работать
Огромное спасибо! В общих чертах понятно.
Получилось, но не совсем то, что мне хотелось...
Нужно, чтобы папка открывалась в текущем окне, а не новом (как при клике на локальных дисках), а также, чтобы эта папка была видна в левой древовидной панели, которая появляется после нажатия кнопки "Папки" и была раскрываемая (ну т.е. опять же как любой локальный диск).
Чтобы в этом списке папка появилась, я добился, изменив Attributes в ShellFolder на hex:00,00,04,f0 (подсмотрел у других папок), но проблема в том, что эта папка там только присутствует, но ее нельзя выбрать или "развернуть" в виде дерева...
Помогите пожалуйста и с этим, если возможно! :)
Или хотя бы накормите полезными линками, чтобы умнее стал (а то навскидку Гугл много воды навыдавал, среди которой не смог отыскать то, что мне нужно)...
Спасибо заранее :)
defrag
Боюсь, что больше ничем не смогу вас порадовать, по крайней мере мне не удалось добиться то чего вы хотите экспериментами...
Blast, спасибо и на этом!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.