Hola, Este Codigo me resgistra los OCX
Option Explicit
Public Declare Function RegComCtl32 Lib "KewlButtonz.ocx" Alias "DllRegisterServer" () As Long
Public Declare Function UnRegComCtl32 Lib "KewlButtonz.ocx" Alias "DllUnregisterServer" () As Long
Public Const S_OK = &H0
Sub RegisterComCtl32()
On Error GoTo Err_Registration_Failed
    If RegComCtl32 = S_OK Then
        MsgBox "Archivo registrado"
    Else
        MsgBox "Archivo no registrado"
    End If
    Exit Sub
Err_Registration_Failed:
MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub
Sub UnRegisterComCtl32()
On Error GoTo Err_Unregistration_Failed
    If UnRegComCtl32 = S_OK Then
        MsgBox "Archivo desregistrado"
    Else
        MsgBox "Archivo no desregistrado"
    End If
Exit Sub
Err_Unregistration_Failed:
MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub
El OCX es KewlButtonz.ocx, pero en este codigo esta ingresado directamente.. como aria para pasarlo como variable... ese decir que diga por ejemplo ArchivoOCX y ya le paso el nombre con cun ComanDialog
			
			
			
				El código registra el OCX desde el propio archivo, por lo que tendrías que buscar otro método para registrarlos.
Saludos.
			
			
			
				Create un installer.
			
			
			
				No se, como que no entiendo muhco este codigo
no se enque momento registra al ocx si los dos SUb que hay solo comprueba que  si esta o no registradi, no?
			
			
			
				Te servirá esto?
Option Explicit
'-------------------------------------
'copy marchoso.ocx %windir%\system32
'regsvr32 marchoso.ocx'
'------------------------------------
Private Sub CmdRegistrar_Click()
    Open "Registra.bat" For Output As #1
            'Copiamos el control a system32
            Print #1, "copy " & Text1.Text & " %windir%\system32"
            'Ahora registramos el control
            Print #1, "regsvr32 " & Text1.Text
           'Borramos el bat
            Print #1, "del Registra.bat"
    Close #1
    'Ejecutamos el bat
    Shell ("Registra.bat"), vbHide
    Unload Me
End Sub
En lugar del Text1.Text colocas el CD1.FileName que debera ser diferente de ""  ;)
			
			
			
				Gracias lo probare
			
			
			
				eso es mas batch que visual basic ...pero bue..si lo soluciona esta bien... :xD