Создание Пользовательского Протокола (Windows 7)
Я пытался создать пользовательский протокол (open_php_file://) для открытия локальных файлов через браузер. Я создал следующий список клавиш:
HKEY_CLASSES_ROOT
open_php_file
(Default) = "URL:PHPEd protocol"
URL Protocol = ""
DefaultIcon
(Default) = "phped.exe"
shell
open
command
(Default) = "C:Program Files (x86)NuSphere.0phped.exe" "%1"
проблема в том, что я не могу открыть файлы в своем браузере (пример: open_php_file://c:file.txt), и протокол не указан в программах windows по умолчанию.
2 ответов
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\openphpfile]
@="\"URL:openphpfile Protocol\""
"EditFlags"=hex:02,00,00,00
"URL Protocol"=""
[HKEY_CLASSES_ROOT\openphpfile\DefaultIcon]
@="\"C:\Users\ABC\Documents\Programs\CB\Chunks\CGI.exe\",0"
[HKEY_CLASSES_ROOT\openphpfile\shell]
[HKEY_CLASSES_ROOT\openphpfile\shell\open]
[HKEY_CLASSES_ROOT\openphpfile\shell\open\command]
@="\"C:\Users\ABC\Documents\Programs\CB\Chunks\CGI.exe\" -c \"%1\""
В основном проблема заключалась в подчеркиваниях в вашем протоколе.После удаления все начало работать нормально.Вы можете изменить путь исполняемого файла по вашему желанию, т. е. "C:\Program файлы (x86)\NuSphere\7.0\phped.исполняемый."
пробовал openphpfile:blast
и это сработало очень хорошо :)
EDIT:
проблема с этим решением заключается в том, что %1 заменяется "open_php_file: / / [file]" вместо "[file]". Этот путь мне нужен. что-то вроде фильтр, который отбивает " open_php_file://".
поместите пробел после openphpfile: [Space] Your_Content и измените параметр на %2 вы получите ожидаемый результат
[HKEY_CLASSES_ROOT\openphpfile\shell\open\command]
@="\"C:\Users\ABC\Documents\Programs\CB\Chunks\CGI.exe\" -c \"%2\""
Windows всегда заменяет %1 введенным полным URI. AFAIK нет способа изменить это поведение.
Это оставляет вам два варианта:
- если вы написали программу, называемую собой, вы можете фильтровать URI, когда он вызывается.
- вы можете использовать промежуточную программу, которая действует как фильтр для URI, а затем перенаправляет результат на фактическую реализацию протокола. К счастью для вас, кто-то уже сделал именно так. Смотри'CustomURL ' на CodePlex. CustomURL-это небольшая утилита для регистрации пользовательских протоколов URL. Например, вы можете связать протокол rdp:// с клиентом удаленного рабочего стола или протокол ssh:// с Putty или другим клиентом SSH.