1 - Como vincular un protocolo a una aplicacion? (Please Urgente)

31/07/2003 - 06:03 por Prof. Roberto A. Berrospe Machin. | Informe spam
Hola Unos!
Tengo que hacer una aplicacion que me vincule una aplicacion a un protocolo
y que me acepte tambien como parametro la unidad.

Por ejemplo. Cuando yo ponga en el explorer algo como:

editor:c:\test.txt

y el explorador me abra el notepad con el fichero c:\test.txt


editor, seria el protocolo en este caso y c:\test.txt el camino y el archivo
a abrir.

Lo Ideal seria. editor://c:\test.txt

pero de la otra forma me sirve igual :)

En la pagina en ingles de microsoft consegui esto...

Esta es la direccion:
http://msdn.microsoft.com/library/d...ndix_a.asp

aqui da como ejemplo que agrege esto en el registro:

[HKEY_CLASSES_ROOT]
[note]
(Default) = "URL:Note Protocol"
URL Protocol = ""
[DefaultIcon]
(Default) = "notepad.exe"
[shell]
[open]
[command]
(Default) = "c:\windowsotepad.exe %1"


supuestamente con esto, al poner en el explorador: note:c:\test.txt
se tendria que abrir el notepad y abrirme el archivo.

Pero resulta que lo probe y no me abre nada. si no que me da un mensaje que
dice
que no se encuentra "note:c:\test.txt"
entonces, parece que si se abre el notepad, pero le esta pasando como
parametros toda la direccion. y bueno.. esto es sollucionable con
aplicaciones propias, ya que se puede eliminar el note: y tomar como
parametro solo C:\TEST.TXT.
Pero no funca con aplicaciones normales.

Alguien ha hecho algo de esto? les agradeceria la ayuda.

Saludos.

Prof. Roberto A. Berrospe Machin.
 

Leer las respuestas

#1 Leonardo Azpurua
31/07/2003 - 07:15 | Informe spam
Hola, Profe:

El asunto es que el nombre del protocolo pasa como parte del argumento al
programa asociado.

Notó Ud. que notepad le dice que no puede localizar el archivo
"note:c:\autoexec.bat".

Eso significa que el programa encargado de "manejar" las solicitudes de ese
protocolo debe poder manejar la referencia al protocolo en cuestion como
parte del argumento.

Si escribe un programa, llamémosle "prenotepad.exe", que se limite a lo
siguiente:

Sub Main
Dim sArg as String
sArg = Right(Command, Len(Command) - 5)
' len(note:) = 5
' creo que con un poquito de complejidad adicional
' podría manejar tambien note://
Shell("NOTEPAD.EXE " & sArg)
End Sub

y asocia el protocolo note: con prenotepad.exe, su asociación de protocolo
funcionará al pelo.

Espero haber solucionado su urgencia, y que tenga Ud. muy buenas noches.

Salud!

Leonardo
[MS MVP - VB]



"Prof. Roberto A. Berrospe Machin."
escribió en el mensaje news:#
Hola Unos!
Tengo que hacer una aplicacion que me vincule una aplicacion a un


protocolo
y que me acepte tambien como parametro la unidad.

Por ejemplo. Cuando yo ponga en el explorer algo como:

editor:c:\test.txt

y el explorador me abra el notepad con el fichero c:\test.txt


editor, seria el protocolo en este caso y c:\test.txt el camino y el


archivo
a abrir.

Lo Ideal seria. editor://c:\test.txt

pero de la otra forma me sirve igual :)

En la pagina en ingles de microsoft consegui esto...

Esta es la direccion:



http://msdn.microsoft.com/library/d...king/plugg
able/overview/appendix_a.asp

aqui da como ejemplo que agrege esto en el registro:

[HKEY_CLASSES_ROOT]
[note]
(Default) = "URL:Note Protocol"
URL Protocol = ""
[DefaultIcon]
(Default) = "notepad.exe"
[shell]
[open]
[command]
(Default) = "c:\windowsotepad.exe %1"


supuestamente con esto, al poner en el explorador: note:c:\test.txt
se tendria que abrir el notepad y abrirme el archivo.

Pero resulta que lo probe y no me abre nada. si no que me da un mensaje


que
dice
que no se encuentra "note:c:\test.txt"
entonces, parece que si se abre el notepad, pero le esta pasando como
parametros toda la direccion. y bueno.. esto es sollucionable con
aplicaciones propias, ya que se puede eliminar el note: y tomar como
parametro solo C:\TEST.TXT.
Pero no funca con aplicaciones normales.

Alguien ha hecho algo de esto? les agradeceria la ayuda.

Saludos.

Prof. Roberto A. Berrospe Machin.


Preguntas similares