2010-10-18 10 views
5

¿Cómo se puede crear un "protocolo personalizado"? Sé que puede crear un protocolo de URL agregando varias entradas de registro a HKEY_CLASSES_ROOT, pero parece que solo funciona en un navegador. Necesito que funcione en Windows Explorer también.¿Cómo creo un "protocolo personalizado" y lo correlaciono con una aplicación?

Sé que puedo escribir un tipo de interfaz cliente/servidor, pero creo que es excesivo para las necesidades (y el presupuesto) de mi cliente.

Larga historia corta ...

  • Una aplicación de terceros debe llamar: tbwx:<row_id>
  • Mi aplicación debe cargar y eliminar un registro de la base de datos.

Suena bastante simple (o al menos eso creía). ¿Algunas ideas?

Gracias

+0

¿ha analizado la programación a nivel de socket? – kenny

Respuesta

8

Al menos en Windows 7, puede crear un protocolo personalizado, siempre y cuando se agrega un valor de tipo URL ProtocolREG_SZ a la tecla. No necesita un valor real, solo necesita estar presente. Aquí hay un ejemplo simple de un "Protocolo de eco" que acabo de crear y que funciona en el explorador.

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\echo] 
"URL Protocol"="" 
@="Echo Protocol" 

[HKEY_CLASSES_ROOT\echo\shell] 

[HKEY_CLASSES_ROOT\echo\shell\open] 

[HKEY_CLASSES_ROOT\echo\shell\open\command] 
@="C:\\WINDOWS\\SYSTEM32\\CMD.EXE /Q /C (echo %1) && pause" 

he descubierto que también trabajará en las claves HKCU\Software\Classes y HKLM\Software\Classes también. Sin embargo, no figura en la lista Control Panel\Programs\Default Programs\Set Associations. Es posible que sea necesario actualizar otras claves o de alguna manera se debería registrar con Windows.

Imagino que es lo mismo o similar en las versiones anteriores de Windows XP y posteriores.

+0

Eso fue exactamente lo que tengo. Eso funciona bien en IE, pero no funciona en absoluto en Windows Explorer. Quiero poder simplemente llamar a mi protocolo (y hacer que a su vez llame a mi aplicación) sin tener que llamarlo a través de IE. – coderpros

+0

No sé qué decir entonces. "Funciona en mi máquina". (Windows 7 Pro x64) ¿También está ejecutando esto el 7? ¿Funciona lo anterior para usted? –

+0

Sí. Estoy usando 7 Ultimate x64. ¿Cómo llamas exactamente echo? La razón por la que pregunto es porque echo es en realidad un comando de DOS, por lo que devolvería algo si se escribe en el indicador de cmd o incluso cuando escribe en el menú de inicio (dependiendo de cómo se configure% PATH% var). Ya sabías esto, pero quería verificarlo porque la mitad de la noche me golpeé la cabeza contra la pared. – coderpros

Cuestiones relacionadas