Autor
|
Tema: Como crear un formato o extensión propia. (Leído 6,943 veces)
|
Brian1511
Desconectado
Mensajes: 268
¿Quien soy esa es la gran pregunta?
|
Hola a todos , aqui con otra duda para el mejor foro de la internet.... mi duda es simple solo quiero saber como creo una extensión propia para un programa la cual cuando el archivo se crea , se guarda con el icono del programa con un nombre y con un nombre espefifico? Obtube este codigo en la internet pero aun no se como se llama , porque intente como decia en un ejemplo pero no me funciono, aver si ustedes pueden ayudarme con esto: 'LLamada a las Api de Windows (advapi32) Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long 'Constantes Const HKEY_CLASSES_ROOT = &H80000000 Const REG_SZ = 1 'Valor de cadena Public Res As Long 'IconFile -Dirección del icono que va a tener la extensión. 'ExeFile -Dirección del programa con que se va abrir la extensión. 'ProgramName -Nombre con que se idectifica el programa. 'Extension - Extension que se va a registrar Ejemp Jpg (sin el pto) 'ExtensionDescripcion -La descripción del extension que se mostrara 'en el explorador Ejem "Winrar Archive" (Este es el caso de *.rar extesion del Winrar) Public Sub registrarExtension(ByVal IconFile As String, ByVal ExeFile As String, ByVal ProgramName As String, ByVal Extension As String, ByVal ExtensionDescripcion As String) On Error GoTo Fin Dim SubKey As String, I As String, E As String SubKey = Extension 'Crea la primera clave en el registro,por ejemplo .jpg con valor jpgPaint I = IconFile RegCreateKey HKEY_CLASSES_ROOT, "." & SubKey, Res RegOpenKey HKEY_CLASSES_ROOT, "." & SubKey, Res RegSetValueEx Res, "", 0, REG_SZ, ByVal SubKey & ProgramName, Len(SubKey & ProgramName) 'Crea la segunda clave en el registro,por ejemplo jpgPaint con valor jpgPaint RegCreateKey HKEY_CLASSES_ROOT, SubKey & ProgramName, Res RegOpenKey HKEY_CLASSES_ROOT, SubKey & ProgramName, Res RegSetValueEx Res, "", 0, REG_SZ, ByVal ExtensionDescripcion, Len(ExtensionDescripcion) 'Crea la primera subclave en el registro llamada DefaultIcon,con la ruta del icono seleccionado D:\RegExt\Cube 2.ico O C:\AS.EXE,1 RegCreateKey HKEY_CLASSES_ROOT, SubKey & ProgramName & "\DefaultIcon", Res RegOpenKey HKEY_CLASSES_ROOT, SubKey & ProgramName & "\DefaultIcon", Res RegSetValueEx Res, "", 0, REG_SZ, ByVal I, Len(I) 'Crea la segunda y tercera subclaves en el registro llamadas open\command,con la ruta del programa seleccionado. Ejem: C:\AS.EXE,1 E = ExeFile & " %1" RegCreateKey HKEY_CLASSES_ROOT, SubKey & ProgramName & "\shell\open\command", Res RegOpenKey HKEY_CLASSES_ROOT, SubKey & ProgramName & "\shell\open\command", Res RegSetValueEx Res, "", 0, REG_SZ, ByVal E, Len(E) Fin: End Sub
[/sup]
|
|
|
En línea
|
Creador de BrainMind
|
|
|
xustyx
Desconectado
Mensajes: 213
|
mmm creo que en teoria quien tendria que ponerle icono a tus archivos es el S.O, me refiero que a cuando instales la aplicacion metas un registro en windows que diga que los archivos con tal extension tienen que usar ese programa para abrirse y tal icono.
No se si existe otra manera de que tu app cuando cree el archivo meta como recurso el icono pero NPI, sigo pensando que deberia ser tu app la que se encargase de meter esos registros al instalarse.
|
|
|
En línea
|
|
|
|
noalg
Desconectado
Mensajes: 26
|
Solo debes llamar la funcion para que te registre el tipo archivo a tu programa Ejemplo: registrarExtension("c:\mi_icono.ico", "c:\exe_de_mi_programa.exe", "nombre de mi programa", "extension(sin el punto)", "tipo de archivo que es la extension")
|
|
|
En línea
|
|
|
|
xustyx
Desconectado
Mensajes: 213
|
Soy tan vago que no me había ni leido el codigo XDDDD.
|
|
|
En línea
|
|
|
|
Brian1511
Desconectado
Mensajes: 268
¿Quien soy esa es la gran pregunta?
|
Gracias por comentar , ese que puse me funcionaba pero no hacia todo, no me ponia el icono. Ya lo he resuelto!! Esto es lo que use , lo pongo por si alguien tiene la misma duda o el mismo problema: Este codigo va en el Form Load tambien se puede poner en un Command o donde sea... 'Variables para los datos que asociará una extención con un programa Dim Descripcion As String Dim Ruta_Programa As String Dim Ruta_Icono As String Dim Extension As String 'Descripción del Programa Descripcion = "Aqui pones la descripcion de tu archivo creado." 'Path de la aplicación Ruta_Programa = App.Path & "\" & App.EXEName ' La extensión a asociar Extension = ".tu extensión" 'Ruta del Archivo de ícono ( opcional ) Ruta_Icono = App.Path & "\Icono.ico" 'Llama a la función Asociar_Extension_Programa Call Asociar_Extension_Programa(Descripcion, _ Ruta_Programa, _ Extension, _ Ruta_Icono)
Y este es el modulo: No cambies nada de aqui solo del primer codigo! Option Explicit 'Declaraciones del Api y constantes '##################################### Private Declare Function RegCreateKey& Lib "advapi32.DLL" Alias "RegCreateKeyA" _ (ByVal hKey&, ByVal lpszSubKey$, hKey&) Private Declare Function RegSetValue& Lib "advapi32.DLL" Alias "RegSetValueA" _ (ByVal hKey&, ByVal lpszSubKey$, ByVal fdwType&, ByVal _ lpszValue$, ByVal dwLength&) Private Const HKEY_CLASSES_ROOT = &H80000000 Private Const MAX_PATH = 256& Private Const REG_SZ = 1 'Subrutina que asocia la extensión del programa '############################################### Public Sub Asociar_Extension_Programa(Descripcion As String, _ Programa As String, _ Extension As String, _ Optional Icono As String) Dim Clave As String Dim Valor_Clave As String Dim rc As Long Dim Handle_Clave As Long Dim ret As Long If Descripcion = "" Then MsgBox " No se especificó la descripción del programa", vbCritical Exit Sub End If If Programa = "" Then MsgBox " No se ha especificado la ruta del programa", vbCritical Exit Sub End If If Extension = "" Then MsgBox " No se ha especificado la extension del programa", vbCritical Exit Sub End If Clave = "clase" Valor_Clave = Descripcion ret = RegCreateKey&(HKEY_CLASSES_ROOT, Clave, Handle_Clave&) ret = RegSetValue&(Handle_Clave&, "", REG_SZ, Valor_Clave, 0&) ' Graba la extension Valor_Clave = "clase" ret = RegCreateKey&(HKEY_CLASSES_ROOT, Extension, Handle_Clave&) ret = RegSetValue&(Handle_Clave&, "", REG_SZ, Valor_Clave, 0&) 'Graba la ruta del ejecutable y el comando Shell\open\command Valor_Clave = Programa & " %1" ret = RegCreateKey&(&H80000000, Clave, Handle_Clave&) ret = RegSetValue&(Handle_Clave&, "shell\open\command", 1, Valor_Clave, 256&) ' Graba la ruta del ícono que se asociará al ejecutable ret = RegSetValue&(Handle_Clave&, "DefaultIcon", 1, Icono, Len(Icono)) End Sub
|
|
|
En línea
|
Creador de BrainMind
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
GTA: Como crear tu propia ciudad????
Juegos y Consolas
|
Carloswaldo
|
3
|
4,520
|
8 Febrero 2006, 13:22 pm
por Neobius
|
|
|
como crear portales en formato sql de manera superfasil
Juegos y Consolas
|
kmbawuazo
|
0
|
1,457
|
16 Noviembre 2008, 05:04 am
por kmbawuazo
|
|
|
Crear tu Propia WebProxy
Desarrollo Web
|
CorruptedByte
|
1
|
3,827
|
28 Junio 2011, 17:25 pm
por madpitbull_99
|
|
|
como puedo crear mi propia distro de windows?
Windows
|
General Dmitry Vergadoski
|
3
|
4,352
|
3 Junio 2012, 18:01 pm
por dato000
|
|
|
Cómo crear una fuente para ordenador con tu propia letra
Noticias
|
wolfbcn
|
0
|
1,430
|
20 Octubre 2014, 13:42 pm
por wolfbcn
|
|