Registra OCX con Problemas de Licencias desde Access
Despues de investigar mucho y de preguntarme el porque Microsoft no deja registrar ciertas OCX como el Control Inet "MsInet.OCX"
Descubri que es necesario Licenciarlo y eso es pagando a Microsoft, pero tambien descubri que existia un archivo de registro que
suple la necesidad de la licencia y aca esta lo pongo a dispocision de todos los programadores de Access
Tambien puedes usar este modulo para registrar el MSWINSCK.OCX
NOTA: EL USO DE ESTE MODULO Y EL ARCHIVO REG DE LOS CONTROLES PARA SU REGISTRO, QUEDA A JUICIO DEL PROGRAMADOR POR FAVOR SEA CONCIENTE Y NO UTILIZE LA AYUDA QUE LE HE BRINDADO PARA COMETER DELITOS CIBERNETICOS.
** El Codigo **
Option Compare Database
'***************************************************************
'& &*
'& &*
'& &*
'& &*
'& Jefferson Jimenez (JJJT) &*
'& Cabimas - Venezuela &*
'& Agosto - 2010 &*
'& &*
'& &*
'& &*
'& &*
'& &*
'***************************************************************
'API para conocer la Carpeta del System
Private Declare Function GetSystemDirectory _
Lib "kernel32" _
Alias "GetSystemDirectoryA" ( _
ByVal lpBuffer As String, _
ByVal nSize As Long) As Long
'API para verificar un Path
Private Declare Function JJJTExisteFile Lib "shlwapi.dll" Alias "PathFileExistsA" _
(ByVal pszPath As String) As Boolean
Dim RefAccess As Access.Reference 'Creo una Var para la Referencia MsInet.OCX
Function JJJTRegistraMsInet(frmInicio As String)
Dim MsOCXReg As String
On Error Resume Next
If JJJTExisteFile(SystemFolder & "msinet.ocx") Then 'De existir la OCX en la Carpeta System32
Dim CuentaRef As Integer
For CuentaRef = Application.References.Count To 1 Step -1 'Cuento las Referencias
Set RefAccess = References(CuentaRef) 'Las Cargo
References.AddFromFile (SystemFolder & "msinet.ocx") 'La Agrego
DoCmd.OpenForm frmInicio 'Abro el Form Inicio
Next CuentaRef
Err.Clear 'Si la referencia esta creada, elimino el mensaje Access
Else 'De no existir
MsOCXReg = SystemFolder & "RegistraJJJT.reg"
MsgBox "Se ha detectado que no tiene instalado el control ActiveX 'msinet.ocx' " & vbCrLf & _
"su registro es indispensable, para el buen funcionamiento de este ejemplo" & vbCrLf & vbCrLf & _
"Vamos a Registrarlo", vbExclamation, "JJJT Access"
'Primero Copia a la carpeta del System la OCX y el REG
FileCopy CurrentProject.Path & "\Ocx MsInet\msinet.ocx", SystemFolder & "msinet.ocx"
FileCopy CurrentProject.Path & "\Ocx MsInet\RegistraJJJT.reg", SystemFolder & "RegistraJJJT.reg"
'Luego las ejecuto con el comando Shell para Registrarlas
Shell "REGSVR32 " & SystemFolder & "msinet.ocx" & " /s", vbHide
Shell "regedit.exe /s " & MsOCXReg & ""
DoCmd.OpenForm frmInicio 'Abro el Form Inicio
End If
End Function
Function SystemFolder() As String
Dim Buffer As String * 256
Dim Tam As Long
' Muestra el path del directorio de sistema
Tam = GetSystemDirectory(Buffer, Len(Buffer))
SystemFolder = Left$(Buffer, Tam) & "\"
End Function