(...) Ahora comentar un detalle importante, para que vuestros programas escritos en VB puedan abrir el archivo al hacer doble click sobre el teneis que leer la linea de parametros enviada en la llamada al programa mediante la funcion
Command(). Un ejemplo que explique esto, para cargar el
Autoexec.bat en el
block de notas la llamada al programa desde linea de comandos seria asi
"C:\Windows\Notepad.exe Autoexec.bat", en este caso
Command() devolveria
"Autoexec.bat" ya que la funcion excluye la ruta y nombre del programa devolviendo solo los caracteres que encuentra despues que son los que se interpretan como parametros de llamada.
Un programa de ejemplo que lee la linea de parametros para cargar un archivo en un
TextBox:
Crear un
TextBox con propiedad
MultiLine =
Verdadero dentro del formulario e introducir el siguiente codigo en el Formulario:
Código:
'Codigo creado por VBEspaniol
'http://members.tripod.com/VBEspaniol
'[email protected]
'Pruebe esto Genere el archivo .exe
'Luego arrastre con el mouse un archivo
'cualquiera (no muy grande, del tamaño
'que abre el bloc de notas).
'El programa tendria que abrir el mismo...
Option Explicit
Private Sub Form_Load()
Dim Archivo As String
'Comprobamos que no este vacio
If Not Command = vbNullString Then
Archivo = Trim(Command)
'Comprabamos que no tenga comillas
If InStr(1, Archivo, Chr(34)) <> 0 Then
Archivo = Mid(Archivo, 2, Len(Archivo) - 2)
End If
Open Archivo For Input As #1
txtTexto.Text = Input(LOF(1), 1)
Close #1
End If
End Sub
Bueno, con todo esto ya teneis lo necesario para poder asociar una extension a vuestro programa y que este lea el archivo. Estudiando los pasos que realiza el programa a la hora de registrar la asociacion de la extension con el programa en el resgistro de windows podeis sacar la forma de realizar dicha asociacion en vuestros programas de instalacion, por ejemplo, para el formato *.pra:
Ruta en el registro de Windows - Valor del registro HKEY_CLASSES_ROOT\AppClass\AppTitle - Un ejemplo de extensión de archivo HKEY_CLASSES_ROOT\AppClass\AppClass - Un ejemplo de extensión de archivo.NewExt HKEY_CLASSES_ROOT\AppCmdLine\shell\open\command - C:\Windows\Notepad.exe HKEY_CLASSES_ROOT\AppCmdLine\DefaultIcon - C:\Windows\System32\shell32.dll,2
Aviso, esto ultimo no lo he probado, imagino que el programa de instalacion debera crear primero el registro y despues añadir el valor, no se exactamente como lo haran en
Inno Setup Compiler o
Setup Generator, en la mayoria suele venir una ventana donde añades los registros que quieres que haga el programa de instalacion. Para ello revisar la documentacion de vuestros generadores de instalaciones.