Determinar si un ActiveX esta registrado llamando la siguiente función:
? OcxRegistrado("mscomctl2.monthview.2") && MontView ? OcxRegistrado("mscomctl2.dtpicker.2") && Date Time Picker ? OcxRegistrado("mscomctllib.treectrl.2") && Treeview ? OcxRegistrado("mschart20lib.mschart.2") && Ms Chart ? OcxRegistrado("mscommlib.mscomm.1") && MsComm FUNCTION OcxRegistrado(cClase) Declare Integer RegOpenKey In Win32API ; Integer nHKey, String @cSubKey, Integer @nResult Declare Integer RegCloseKey In Win32API ; Integer nHKey nPos = 0 lEsta = RegOpenKey(-2147483648, cClase, @nPos) = 0 If lEsta RegCloseKey(nPos) Endif Return lEsta EndfuncLos archivos OCX tienen una referencia o nombre interno, para averiguar cual es agregamos este a un formulario de VFP, lo seleccionamos y revisamos la propiedad OleClass y ese será el nombre que utilizaremos.
Para registrar el OCX puede ser:
1) Directamente desde la opción Run/Ejecutar del botón inicio de Windows:
REGSVR32 <ArchivoOCX>2) Desde Fox con macro de sustitución:
cRun="REGSVR32 <ArchivoOCX>" !&cRun3) Con la rutina de Jorge Mota:
DECLARE INTEGER DLLSelfRegister IN "Vb6stkit.DLL" ; STRING lpDllName =DLLSelfRegister(<ArchivoOCX>)-- REGISTRAR Y DESREGISTRAR UN ARCHIVO OCX O DLL --
http://comunidadvfp.blogspot.com/2002/08/registrar-y-desregistrar-un-archivo-ocx.html
Saludos.
Jesus Caro V