Автор Тема: Как добавить файловый менеджер в контекстное меню  (Прочитано 4486 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Оффлайн KREKER12345

  • Ветеран
  • *****
  • Сообщений: 763
  • Пол: Мужской
    • Просмотр профиля
Пример. Нужно чтобы при наведении на папку или устройство (диск) в контекстном меню появился пункт Открыть с помощью бла-бла-бла. Наш файловый менеджер имеет следующие параметры:

Строка в меню: TotalComander123456789
  Файл запуска: C:\Program Files\Total Commander GP Lite\TOTALCMD.EXE

Решение. Создаём файл реестра:
 Спойлер:
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Directory\Shell\TotalComander123456789]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Directory\Shell\TotalComander123456789\Command]
@="\"C:\\Program Files\\Total Commander GP Lite\\TOTALCMD.EXE\" \"%1\""


[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Drive\Shell\TotalComander123456789]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Drive\Shell\TotalComander123456789\Command]
@="\"C:\\Program Files\\Total Commander GP Lite\\TOTALCMD.EXE\" \"%1\""


[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Directory\Shell\TotalComander123456789]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Directory\Shell\TotalComander123456789\Command]
@="\"C:\\Program Files\\Total Commander GP Lite\\TOTALCMD.EXE\" \"%1\""



[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Drive\Shell\TotalComander123456789]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Drive\Shell\TotalComander123456789\Command]
@="\"C:\\Program Files\\Total Commander GP Lite\\TOTALCMD.EXE\" \"%1\""


Обратите внимание на двойные слеши (C:\\Program Files\\Total Commander...) в указании пути файла запуска. Название в меню должно быть латиницей и без пробелов. Это не очень удобно, всё-таки это название ветки реестра, зато так можно делать с любым файловым менеджером. Следует иметь в виду, что если захотите поменять запись в контекстном меню и просто измЕните название в файле реестра (в данном примере - TotalComander123456789), то при запуске этого файла реестра старая запись останется в контекстном меню. Для её удаления понадобится свой файл реестра по этому образцу:

 Спойлер:
Windows Registry Editor Version 5.00

[-HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Directory\Shell\TotalComander123456789]
[-HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Drive\Shell\TotalComander123456789]
[-HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Directory\Shell\TotalComander123456789]
[-HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Drive\Shell\TotalComander123456789]



Оффлайн KREKER12345

  • Ветеран
  • *****
  • Сообщений: 763
  • Пол: Мужской
    • Просмотр профиля
Указанный файл реестра запускается не всегда, выкладываю обновлённый.

 Спойлер:
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500\Software\Classes\Directory]

[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500\Software\Classes\Directory\Shell]

[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500\Software\Classes\Directory\Shell\TotalComander123456789]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500\Software\Classes\Directory\Shell\TotalComander123456789\Command]
@="\"C:\\Program Files\\Total Commander GP Lite\\TOTALCMD.EXE\" \"%1\""



[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500\Software\Classes\Drive]

[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500\Software\Classes\Drive\Shell]

[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500\Software\Classes\Drive\Shell\TotalComander123456789]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500\Software\Classes\Drive\Shell\TotalComander123456789\Command]
@="\"C:\\Program Files\\Total Commander GP Lite\\TOTALCMD.EXE\" \"%1\""


[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500_Classes\Directory\Shell\TotalComander123456789]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500_Classes\Directory\Shell\TotalComander123456789\Command]
@="\"C:\\Program Files\\Total Commander GP Lite\\TOTALCMD.EXE\" \"%1\""



[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500_Classes\Drive\Shell\TotalComander123456789]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1960408961-1972579041-682003330-500_Classes\Drive\Shell\TotalComander123456789\Command]
@="\"C:\\Program Files\\Total Commander GP Lite\\TOTALCMD.EXE\" \"%1\""

Следует учитывать, что в каждом компьютере даже на установленных одинаковых системах параметры пользователя разные (в данном разделе реестра). В указанном примере следует заменить (через Блокнот) набор символов:
S-1-5-21-1960408961-1972579041-682003330-500

на другой
S-1-5-21-**********-**********-*********-***

который можно найти у себя в реестре по адресу (самая первая запись):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\S-1-5-21-**********-**********-*********-***]



Сообщение добавлено спустя 31 мин. 25 сек.
Ради интереса попробуйте сделать такое с WinRAR-ом. Работает!!!

 ::)

 Спойлер:
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Directory]

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Directory\Shell]

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Directory\Shell\WinRAR]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Directory\Shell\WinRAR\Command]
@="\"C:\\Program Files\\WinRAR\\WinRAR.EXE\" \"%1\""



[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Drive]

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Drive\Shell]

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Drive\Shell\WinRAR]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Drive\Shell\WinRAR\Command]
@="\"C:\\Program Files\\WinRAR\\WinRAR.EXE\" \"%1\""


[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Directory\Shell\WinRAR]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Directory\Shell\WinRAR\Command]
@="\"C:\\Program Files\\WinRAR\\WinRAR.EXE\" \"%1\""



[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Drive\Shell\WinRAR]
"EditFlags"=hex:01,00,00,00

[HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Drive\Shell\WinRAR\Command]
@="\"C:\\Program Files\\WinRAR\\WinRAR.EXE\" \"%1\""

Сообщение добавлено спустя 37 мин. 26 сек.
Удаление WinRAR из конт. меню:
 Спойлер:
Windows Registry Editor Version 5.00

[-HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Directory\Shell\WinRAR]
[-HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500\Software\Classes\Drive\Shell\WinRAR]
[-HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Directory\Shell\WinRAR]
[-HKEY_USERS\S-1-5-21-1078081533-1844237615-1417001333-500_Classes\Drive\Shell\WinRAR]

« Последнее редактирование: 19 Марта 2015, 11:45:08 от KREKER12345 »

Оффлайн KREKER12345

  • Ветеран
  • *****
  • Сообщений: 763
  • Пол: Мужской
    • Просмотр профиля
Найдено более простое решение. Достоинством такого подхода является возможность "вшивания" в дистрибутив WINDOWS.

1. Создаём коммандный файл *.cmd, который прописывает путь к файлу запуска и рабочую папку, делая своего рода регистрацию программы. В нашем случае это Total Commander, теперь система "знает" его как  totalcmd777
 *.cmd:
@echo off

rem totalcmd777
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\totalcmd777.exe" /ve /d "%PROGRAMFILES%\Total Commander GP Lite\Totalcmd.exe" /f >nul
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\totalcmd777.exe" /v Path /d "%PROGRAMFILES%\Total Commander GP Lite" /f >nul

Теперь если ввести: Пуск - Выполнить - totalcmd777 %WINDIR%  , наш командер откроет папку WINDOWS на системном диске. При этом неважно какую букву имеет системный диск, это определяется автоматом. В этом методе буква системного диска не упоминается нигде, что позволяет при установке системы закидывать любой файловый менеджер в дистрибутив и прописывать его в контекстном меню.



2. Создаём файл реестра, в котором указываем totalcmd777 как самостоятельную программу, и текст который будет виден в контекстном меню:
 *.reg:
Windows Registry Editor Version 5.00

; Открывание папок
[HKEY_CLASSES_ROOT\Directory\Shell\Открыть папку в TotalComander]
"EditFlags"=hex:01,00,00,00

[HKEY_CLASSES_ROOT\Directory\Shell\Открыть папку в TotalComander\Command]
@="\"totalcmd777\" \"%1\""

; Открывание дисков
[HKEY_CLASSES_ROOT\Drive\Shell\Открыть устройство в TotalComander]
"EditFlags"=hex:01,00,00,00

[HKEY_CLASSES_ROOT\Drive\Shell\Открыть устройство в TotalComander\Command]
@="\"totalcmd777\" \"%1\""

; Открывание файлов (архивы и пр..)
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\Open in TotalComander]
@="Открыть файл в TotalComander"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\Open in TotalComander\command]
@="\"totalcmd777\" \"%1\""

Следует учитывать, что русский шрифт корректно воспринимается системой только в кодировке ОЕМ866, старые версии Notepad++ её не поддерживают. В свою очередь очень удобен в этом плане Alke Pad.

« Последнее редактирование: 05 Июня 2015, 20:03:10 от KREKER12345 »

Оффлайн KREKER12345

  • Ветеран
  • *****
  • Сообщений: 763
  • Пол: Мужской
    • Просмотр профиля
Продолжение -  здесь