
26/04/2008, 03:22
|
Colaborador | | Fecha de Ingreso: enero-2008 Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 2 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 |