2012-07-26 27 views
7

He estado tratando de crear un protocolo personalizado (open_php_file: //) para abrir archivos locales a través del navegador. He creado las siguientes teclas: registeryCreando Protocolo Personalizado (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" 

El problema es: No puedo abrir archivos en mi navegador (ejemplo: open_php_file: // C: \ archivo.txt), y el protocolo de ISN' t enumerado en los programas predeterminados de Windows.

+1

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

+1

el problema con esta solución es que% 1 se reemplaza por "open_php_file: // [file]" en lugar de simplemente "[file]". De esta forma, necesito algún tipo de filtro que corte "open_php_file: //". – Simon

Respuesta

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

Básicamente, el problema era con los guiones en su protocol.Once eliminado todo comenzó a trabajar fine.You puede cambiar la ruta del ejecutable según su deseo es decir, "C: \ Archivos de programa (x86) \ NuSphere \ 7.0 \ phped.exe ".

me trataron openphpfile:blast y funcionó bastante bien :)

EDIT:

el problema con esta solución es que 1% es reemplazado con "open_php_file: // [Archivo]" en lugar de solo "[archivo]". De esta manera necesito algún tipo de filtro que corta "open_php_file: //".

deja un espacio tras openphpfile: [Espacio] Your_Content y el parámetro de cambio a 2% obtendrá el resultado esperado

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

Funciona sin agregar el valor 'EditFlags' y la clave' DefaultIcon', interesante. Gracias por esto, usando en Win7. – Blagoh

+0

@perilbrain Esta solución funciona bien en Windows 7 pero no en Windows 10, ¿puede sugerir algo para Windows 10? –

0

Windows siempre reemplaza% 1 con la URI completa que se ha introducido. AFAIK no hay forma de cambiar ese comportamiento.

Esto le deja dos opciones:

  1. Si usted ha escrito el programa que se llama a sí mismo, puede filtrar el URI cuando se invoca.
  2. Puede usar un programa intermedio que actúa como filtro para el URI y luego reenvía el resultado a la implementación real del protocolo. Afortunadamente para ti, alguien ya ha hecho exactamente eso. Ver 'CustomURL' en CodePlex. CustomURL es una pequeña utilidad para registrar protocolos URL personalizados. Por ejemplo, puede asociar el protocolo rdp: // con Remote Desktop Client o el protocolo ssh: // con Putty u otro cliente SSH.