Sub LisReg() 'Declaraciones Dim cDirDoble As String 'Directorio con "\" dobles Dim cDirectorio As String 'Directorio destino de Lispar 99 Dim cMsg As String 'Mensaje Dim nFichero As Integer 'Manejador de fichero 'Control de errores On Error GoTo AvisoLisReg 'Obtiene un manejador de fichero nFichero = FreeFile 'Borra el fichero si ya existe, lo pongo en el directorio raíz del C 'por si el cliente lo instala en una carpetade sólo lectura If Len(Dir("C:" & "\LisPar.reg")) <> 0 Then Kill ("C:" & "\LisPar.reg") End If 'Crea y Abre el fichero Open "C:" & "\LisPar.reg" For Output As #nFichero 'Escribe en el fichero en formato del editor de registro Print #nFichero, "REGEDIT4" Print #nFichero, 'Asocia la extension (.DDC) Print #nFichero, "[HKEY_CLASSES_ROOT\.ddc]" Print #nFichero, "@=""Descriptor de carga""" Print #nFichero, "[HKEY_CLASSES_ROOT\Descriptor de carga]" Print #nFichero, "@=""Descriptor de carga""" 'Asigna el icono por defecto. Print #nFichero, "[HKEY_CLASSES_ROOT\Descriptor de carga\DefaultIcon]" 'O Px.ico o, si no existe, el del programa If Len(Dir(cDirectorio & "\ddc.ico")) <> 0 Then Print #nFichero, "@=""" & cDirDoble & "\\ddc.ICO""" Else Print #nFichero, "@=""" & cDirDoble & "\\LISPAR99.EXE,0""" End If 'Crea la opción en el menú contextual" Print #nFichero, "[HKEY_CLASSES_ROOT\Descriptor de carga\shell\listar_ddc]" Print #nFichero, "@=""&Listar DDC""" 'Crea la invocación al ejecutable" Print #nFichero, "[HKEY_CLASSES_ROOT\Descriptor de carga\shell\listar_ddc\command]" Print #nFichero, "@=""" & cDirDoble & "\\LISPAR99.EXE %1""" 'Asocia las extensiones (.0) a (.9) a la clase "Tablas" Print #nFichero, "[HKEY_CLASSES_ROOT\.0]" Print #nFichero, "@=""Tablas""" Print #nFichero, "[HKEY_CLASSES_ROOT\.1]" Print #nFichero, "@=""Tablas""" Print #nFichero, "[HKEY_CLASSES_ROOT\.2]" Print #nFichero, "@=""Tablas""" Print #nFichero, "[HKEY_CLASSES_ROOT\.3]" Print #nFichero, "@=""Tablas""" Print #nFichero, "[HKEY_CLASSES_ROOT\.4]" Print #nFichero, "@=""Tablas""" Print #nFichero, "[HKEY_CLASSES_ROOT\.5]" Print #nFichero, "@=""Tablas""" Print #nFichero, "[HKEY_CLASSES_ROOT\.6]" Print #nFichero, "@=""Tablas""" Print #nFichero, "[HKEY_CLASSES_ROOT\.7]" Print #nFichero, "@=""Tablas""" Print #nFichero, "[HKEY_CLASSES_ROOT\.8]" Print #nFichero, "@=""Tablas""" Print #nFichero, "[HKEY_CLASSES_ROOT\.9]" Print #nFichero, "@=""Tablas""" 'Crea la clase "Tablas" y la nombra "Parámetros de generación" Print #nFichero, "[HKEY_CLASSES_ROOT\Tablas]" Print #nFichero, "@=""Parámetros de generación""" 'Asigna el icono por defecto. Print #nFichero, "[HKEY_CLASSES_ROOT\Tablas\DefaultIcon]" 'O Px.ico o, si no existe, el del programa If Len(Dir(cDirectorio & "\Px.ico")) <> 0 Then Print #nFichero, "@=""" & cDirDoble & "\\PX.ICO""" Else Print #nFichero, "@=""" & cDirDoble & "\\LISPAR99.EXE,0""" End If 'Crea la opción en el menú contextual" Print #nFichero, "[HKEY_CLASSES_ROOT\Tablas\shell\LisPar]" Print #nFichero, "@=""&Listar parámetros""" 'Crea la invocación al ejecutable" Print #nFichero, "[HKEY_CLASSES_ROOT\Tablas\shell\LisPar\command]" Print #nFichero, "@=""" & cDirDoble & "\\LISPAR99.EXE %1""" 'Cierra el fichero Close #nFichero 'Combina el fichero de entrada de registro vRetorno = Shell("regedit """ & "C:" & "\LisPar.reg""", 1) 'Borra el fichero de entrada de registro Kill ("C:" & "\LisPar.reg") 'Finaliza la ejecución End 'Manejo de errores AvisoLisReg: ErrorCode = Err If ErrorCode <> 0 Then cMsg = "Se ha generado un error nº " & Str(ErrorCode) & ": " & Chr(13) & """" & Error(ErrorCode) & ".""" & Chr(13) & "Argumento :" & cDirectorio & "." MsgBox cMsg, , "LisPar" End If End End Sub