2012-07-26 14 views
7

Ho cercato di creare un protocollo personalizzato (open_php_file: //) per aprire file locali tramite il browser. Ho creato i seguenti registery-chiavi:Creazione del protocollo personalizzato (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" 

Il problema è: non posso aprire i file nel mio browser (ad esempio: open_php_file: // c: \ file.txt), e l'isn protocollo' t elencato nei programmi predefiniti di Windows.

+1

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

+1

il problema di questa soluzione è che% 1 viene sostituito con "open_php_file: // [file]" invece di "[file]". In questo modo ho bisogno di una sorta di filtro che tagli "open_php_file: //". – Simon

risposta

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

In sostanza il problema era con le sottolineature nel protocol.Once rimosso tutto ha iniziato a lavorare fine.You possibile modificare il percorso del file eseguibile secondo i vostri desideri ad esempio "C: \ Program Files (x86) \ NuSphere \ 7.0 \ phped.exe".

ho provato openphpfile:blast e ha funzionato abbastanza bene :)

EDIT:

il problema con questa soluzione è che% 1 viene sostituito con "open_php_file: // [file]" invece di solo "[file]". In questo modo ho bisogno di una sorta di filtro che taglia "open_php_file: //".

mettere uno spazio dopo openphpfile: [Spazio] Your_Content e il parametro modifica% 2 si otterrà il risultato atteso

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

Funziona senza aggiungere il valore 'EditFlags' e la chiave' DefaultIcon', interessante. Grazie per questo, utilizzando su Win7. – Blagoh

+0

@perilbrain Questa soluzione funziona bene su Windows 7 ma non su Windows 10, puoi suggerire qualcosa per Windows 10. –

0

Windows sostituisce sempre% 1 con la piena URI che è stato immesso. AFAIK non c'è modo di cambiare questo comportamento.

Questo vi lascia due opzioni:

  1. Se avete scritto il programma di essere chiamato da soli, è possibile filtrare l'URI quando viene invocata.
  2. È possibile utilizzare un programma intermedio che funge da filtro per l'URI e quindi inoltra il risultato all'attuale implementazione del protocollo. Fortunatamente per te, qualcuno ha già fatto esattamente questo. Vedere "CustomURL" su CodePlex. CustomURL è una piccola utility per la registrazione di protocolli URL personalizzati. Ad esempio è possibile associare il protocollo rdp: // con Remote Desktop Client o il protocollo ssh: // con Putty o un altro client SSH.
Problemi correlati