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