Ver Mensaje Individual
  #10 (permalink)  
Antiguo 26/04/2008, 03:22
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 4 meses
Puntos: 37
Re: no puedo registrar mi ocx

Hola,

Aquí os dejo una pequeña función para registrar OCX.

Código:
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOW As Integer = 5

Public Function RegistrarOCX(MiOcx As String)
Dim sBuffer As String * 256, lRet As Long, WinDir As String

' obtener el directorio del sistema
lRet = GetSystemDirectory(sBuffer, Len(sBuffer))
WinDir = Left(sBuffer, lRet)
' copiar el ocx al system
' (el archivo .ocx tiene que estar en el directorio de la aplicación y fuera de uso)
FileCopy MiOcx, WinDir & "\" & MiOcx
' registrar el control (lo registra en HKEY_CLASSES_ROOT)
lRet = ShellExecute(Me.hwnd, "open", WinDir & "\regsvr32.exe", MiOcx, CurDir$, SW_SHOW)

End Function
Para llamar a la función:
RegistrarOCX ("MiArchivoOCX.ocx")

Si son varios los archivos a registrar, los puedes meter en un .txt o .ini y con un bucle For... Next registrarlos todos.

Un saludo