2012-07-26 16 views
7

Próbowałem utworzyć niestandardowy protokół (open_php_file: //), aby otworzyć lokalne pliki za pośrednictwem przeglądarki. Utworzyłem następujące registery-klucze:Tworzenie niestandardowego protokołu (Windows 7)

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\7.0\phped.exe" "%1" 

Problemem jest to: Nie mogę otworzyć plików w przeglądarce (na przykład: open_php_file: // c: \ plik.txt) oraz ISN protokołem” t wymienionych w domyślnych programach Windows.

+1

http://stackoverflow.com/questions/80650/how-do-i-register-a-ustom-url-protocol-in-windows?rq=1 –

+1

Problem z tym rozwiązaniem polega na tym, że% 1 zostaje zastąpiony przez "open_php_file: // [plik]" zamiast "[plik]". W ten sposób potrzebuję jakiegoś filtra, który kotlety "open_php_file: //". – Simon

Odpowiedz

8
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\"" 

Zasadniczo problem był z podkreśleniami w swojej protocol.Once usunięte Wszystko zaczęło pracę fine.You można zmienić ścieżkę pliku wykonywalnego, jak na swoje życzenie, czyli „C: Program Files \ (x86) \ NuSphere \ 7.0 \ phped.exe ".

Próbowałem openphpfile:blast i wyszło całkiem ładnie :)

EDIT:

problem z tego rozwiązania jest to, że% 1 zostanie zastąpiony "open_php_file: // [file]" zamiast po prostu "[plik]". W ten sposób potrzebuję jakiegoś filtru, który kotlety "open_php_file: //".

umieścić spację po openphpfile: [spacja] Your_Content i parametrów zmian do% 2 otrzymasz oczekiwany rezultat

[HKEY_CLASSES_ROOT\openphpfile\shell\open\command] 
@="\"C:\\Users\\ABC\\Documents\\Programs\\CB\\Chunks\\CGI.exe\" -c \"%2\"" 
+1

Działa bez dodawania interesujących wartości 'EditFlags' i' DefaultIcon'. Dziękuję za to, używając Win7. – Blagoh

+0

@perilbrain To rozwiązanie działa dobrze w systemie Windows 7, ale nie w systemie Windows 10, czy możesz zasugerować coś dla systemu Windows 10. –

0

Okna zawsze zastępuje% 1 przy pełnym URI, który został wprowadzony. AFAIK nie ma sposobu na zmianę tego zachowania.

Pozostaje ci dwie opcje:

  1. Jeśli napisany program jest nazywany siebie, można filtrować URI, gdy jest wywoływany.
  2. Można użyć programu pośredniego, który działa jako filtr dla identyfikatora URI, a następnie przekazuje wynik do rzeczywistej implementacji protokołu. Na szczęście dla ciebie, ktoś już to zrobił. Zobacz "CustomURL" na CodePlex. CustomURL to małe narzędzie do rejestrowania niestandardowych protokołów URL. Na przykład można powiązać protokół rdp: // z klientem pulpitu zdalnego lub protokół ssh: // z programem Putty lub innym klientem SSH.