Registar extension con todas las de la Ley

Iniciado por ANTRAX, Julio 26, 2010, 02:01:01 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Julio 26, 2010, 02:01:01 PM Ultima modificación: Mayo 12, 2014, 03:20:12 PM por Expermicid
Código: vb
'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