elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Como crear un formato o extensión propia.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como crear un formato o extensión propia.  (Leído 6,728 veces)
Brian1511

Desconectado Desconectado

Mensajes: 268


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Como crear un formato o extensión propia.
« en: 11 Agosto 2013, 17:54 pm »

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:

Código
  1.  
  2.  
  3. 'LLamada a las Api de Windows (advapi32)
  4. Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  5. Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  6. 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
  7. 'Constantes
  8. Const HKEY_CLASSES_ROOT = &H80000000
  9. Const REG_SZ = 1 'Valor de cadena
  10. Public Res As Long
  11.  
  12. 'IconFile -Dirección del icono que va a tener la extensión.
  13. 'ExeFile -Dirección del programa con que se va abrir la extensión.
  14. 'ProgramName -Nombre con que se idectifica el programa.
  15. 'Extension - Extension que se va a registrar Ejemp Jpg (sin el pto)
  16. 'ExtensionDescripcion -La descripción del extension que se mostrara
  17. 'en el explorador Ejem "Winrar Archive" (Este es el caso de *.rar extesion del Winrar)
  18. Public Sub registrarExtension(ByVal IconFile As String, ByVal ExeFile As String, ByVal ProgramName As String, ByVal Extension As String, ByVal ExtensionDescripcion As String)
  19. On Error GoTo Fin
  20. Dim SubKey As String, I As String, E As String
  21. SubKey = Extension
  22. 'Crea la primera clave en el registro,por ejemplo .jpg con valor jpgPaint
  23. I = IconFile
  24. RegCreateKey HKEY_CLASSES_ROOT, "." & SubKey, Res
  25. RegOpenKey HKEY_CLASSES_ROOT, "." & SubKey, Res
  26. RegSetValueEx Res, "", 0, REG_SZ, ByVal SubKey & ProgramName, Len(SubKey & ProgramName)
  27.  
  28. 'Crea la segunda clave en el registro,por ejemplo jpgPaint con valor jpgPaint
  29. RegCreateKey HKEY_CLASSES_ROOT, SubKey & ProgramName, Res
  30. RegOpenKey HKEY_CLASSES_ROOT, SubKey & ProgramName, Res
  31. RegSetValueEx Res, "", 0, REG_SZ, ByVal ExtensionDescripcion, Len(ExtensionDescripcion)
  32.  
  33. '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
  34. RegCreateKey HKEY_CLASSES_ROOT, SubKey & ProgramName & "\DefaultIcon", Res
  35. RegOpenKey HKEY_CLASSES_ROOT, SubKey & ProgramName & "\DefaultIcon", Res
  36. RegSetValueEx Res, "", 0, REG_SZ, ByVal I, Len(I)
  37.  
  38. 'Crea la segunda y tercera subclaves en el registro llamadas open\command,con la ruta del programa seleccionado. Ejem: C:\AS.EXE,1
  39. E = ExeFile & " %1"
  40. RegCreateKey HKEY_CLASSES_ROOT, SubKey & ProgramName & "\shell\open\command", Res
  41. RegOpenKey HKEY_CLASSES_ROOT, SubKey & ProgramName & "\shell\open\command", Res
  42. RegSetValueEx Res, "", 0, REG_SZ, ByVal E, Len(E)
  43. Fin:
  44. End Sub
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
[/sup]


En línea



Creador de BrainMind
xustyx

Desconectado Desconectado

Mensajes: 213


Ver Perfil
Re: Como crear un formato o extensión propia.
« Respuesta #1 en: 11 Agosto 2013, 18:15 pm »

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 Desconectado

Mensajes: 26


Ver Perfil
Re: Como crear un formato o extensión propia.
« Respuesta #2 en: 11 Agosto 2013, 19:01 pm »

Solo debes llamar la funcion para que te registre el tipo archivo a tu programa
Ejemplo:
Código
  1. 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

::¿*¿---//&$#\\---▶{}◀---//#$&\\---?*?::


¡¡¡NO PINCHES AQUI SI NO QUIERES INFECTARTE CON UN VIRUS!!!
xustyx

Desconectado Desconectado

Mensajes: 213


Ver Perfil
Re: Como crear un formato o extensión propia.
« Respuesta #3 en: 11 Agosto 2013, 19:18 pm »

Soy tan vago que no me había ni leido el codigo XDDDD.
En línea

Brian1511

Desconectado Desconectado

Mensajes: 268


¿Quien soy esa es la gran pregunta?


Ver Perfil WWW
Re: Como crear un formato o extensión propia.
« Respuesta #4 en: 11 Agosto 2013, 20:52 pm »

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...


Código
  1.  
  2.  
  3.    'Variables para los datos que asociará una extención con un programa
  4.    Dim Descripcion As String
  5.    Dim Ruta_Programa As String
  6.    Dim Ruta_Icono As String
  7.    Dim Extension As String
  8.  
  9.    'Descripción del Programa
  10.    Descripcion = "Aqui pones la descripcion de tu archivo creado."
  11.  
  12.    'Path de la aplicación
  13.    Ruta_Programa = App.Path & "\" & App.EXEName
  14.  
  15.    ' La extensión a asociar
  16.    Extension = ".tu extensión"
  17.  
  18.    'Ruta del Archivo de ícono ( opcional )
  19.    Ruta_Icono = App.Path & "\Icono.ico"
  20.  
  21.  
  22.    'Llama a la función Asociar_Extension_Programa
  23.    Call Asociar_Extension_Programa(Descripcion, _
  24.                                    Ruta_Programa, _
  25.                                    Extension, _
  26.                                    Ruta_Icono)
  27.  
  28.  
  29.  
  30.  



Y este es el modulo:
No cambies nada de aqui solo del primer codigo!
Código
  1.  
  2.  
  3.  
  4.    Option Explicit
  5.  
  6.    'Declaraciones del Api y constantes
  7.    '#####################################
  8.    Private Declare Function RegCreateKey& Lib "advapi32.DLL" Alias "RegCreateKeyA" _
  9.                             (ByVal hKey&, ByVal lpszSubKey$, hKey&)
  10.    Private Declare Function RegSetValue& Lib "advapi32.DLL" Alias "RegSetValueA" _
  11.                             (ByVal hKey&, ByVal lpszSubKey$, ByVal fdwType&, ByVal _
  12.                                                        lpszValue$, ByVal dwLength&)
  13.  
  14.    Private Const HKEY_CLASSES_ROOT = &H80000000
  15.    Private Const MAX_PATH = 256&
  16.    Private Const REG_SZ = 1
  17.  
  18.  
  19.    'Subrutina que asocia la extensión del programa
  20.    '###############################################
  21.  
  22.    Public Sub Asociar_Extension_Programa(Descripcion As String, _
  23.                                          Programa As String, _
  24.                                          Extension As String, _
  25.                                          Optional Icono As String)
  26.  
  27.  
  28.    Dim Clave As String
  29.    Dim Valor_Clave As String
  30.    Dim rc As Long
  31.    Dim Handle_Clave As Long
  32.    Dim ret As Long
  33.  
  34.  
  35.  
  36.        If Descripcion = "" Then
  37.            MsgBox " No se especificó la descripción del programa", vbCritical
  38.            Exit Sub
  39.        End If
  40.        If Programa = "" Then
  41.            MsgBox "  No se ha especificado la ruta del programa", vbCritical
  42.            Exit Sub
  43.        End If
  44.        If Extension = "" Then
  45.            MsgBox "  No se ha especificado la extension del programa", vbCritical
  46.            Exit Sub
  47.        End If
  48.  
  49.  
  50.  
  51.        Clave = "clase"
  52.        Valor_Clave = Descripcion
  53.        ret = RegCreateKey&(HKEY_CLASSES_ROOT, Clave, Handle_Clave&)
  54.        ret = RegSetValue&(Handle_Clave&, "", REG_SZ, Valor_Clave, 0&)
  55.  
  56.        ' Graba la extension
  57.        Valor_Clave = "clase"
  58.        ret = RegCreateKey&(HKEY_CLASSES_ROOT, Extension, Handle_Clave&)
  59.        ret = RegSetValue&(Handle_Clave&, "", REG_SZ, Valor_Clave, 0&)
  60.  
  61.         'Graba la ruta del ejecutable y el comando Shell\open\command
  62.        Valor_Clave = Programa & " %1"
  63.        ret = RegCreateKey&(&H80000000, Clave, Handle_Clave&)
  64.        ret = RegSetValue&(Handle_Clave&, "shell\open\command", 1, Valor_Clave, 256&)
  65.  
  66.        ' Graba la ruta del ícono que se asociará al ejecutable
  67.        ret = RegSetValue&(Handle_Clave&, "DefaultIcon", 1, Icono, Len(Icono))
  68.    End Sub
  69.  
  70.  
  71.  
  72.  
En línea



Creador de BrainMind
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
GTA: Como crear tu propia ciudad????
Juegos y Consolas
Carloswaldo 3 4,297 Último mensaje 8 Febrero 2006, 13:22 pm
por Neobius
como crear portales en formato sql de manera superfasil
Juegos y Consolas
kmbawuazo 0 1,323 Último mensaje 16 Noviembre 2008, 05:04 am
por kmbawuazo
Crear tu Propia WebProxy
Desarrollo Web
CorruptedByte 1 3,636 Último mensaje 28 Junio 2011, 17:25 pm
por madpitbull_99
como puedo crear mi propia distro de windows?
Windows
General Dmitry Vergadoski 3 4,125 Último mensaje 3 Junio 2012, 18:01 pm
por dato000
Cómo crear una fuente para ordenador con tu propia letra
Noticias
wolfbcn 0 1,220 Último mensaje 20 Octubre 2014, 13:42 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines