Cómo registrar un control ActiveX
Sin embargo, los usuarios finales no pueden utilizar los controles ActiveX directamente porque deben estar registrados en Windows.
Este artículo resume seis métodos para registrar controles ActiveX, cada uno con sus propias funciones y aplicaciones únicas.
Primero, registro de Regsvr32.exe
Este método es el más utilizado.
Regsvr32.exe se encuentra en el subdirectorio Sistema del directorio de Windows. Haga clic en el menú "Inicio → Ejecutar" de Windows e ingrese el siguiente comando en el cuadro de diálogo: (aquí, el control netshare.ocx se toma como ejemplo)
regsvr32 netshare.ocx Registre el control netshare.ocx
regsvr32 /u netshare.ocx Dar de baja el control netshare.ocx
Si el archivo netshare.ocx no está en el directorio del sistema, también debe agregar la ruta completa antes del nombre del archivo .
En segundo lugar, además de la aplicación regsvr32, Microsoft también proporciona un programa llamado regclean.exe en su sitio web que puede verificar el registro y eliminar las entradas de componentes que faltan en el mismo.
En tercer lugar, además de eliminar las entradas "colgadas", también proporciona un archivo "deshacer" para ayudar a recuperarse de eliminaciones erróneas.
3. Registro del entorno VFP
Abra VFP, seleccione el menú "Herramientas → Opciones", haga clic en la página "Control", seleccione el botón de opción "Control ActiveX" en el cuadro de lista. Muestre todos los controles ActiveX registrados, luego haga clic en el botón "Agregar" a la derecha, seleccione el archivo de control ActiveX que debe registrarse y haga clic en "Aceptar" para completar el registro. También puede arrastrar el botón "OLE" al formulario en la barra de herramientas de control de formulario del diseñador de formularios, seleccionar el botón de opción "Insertar control" en el cuadro de selección emergente y hacer clic en el botón "Agregar control" a la derecha. completa la incorporación del nuevo control. " para completar el registro del nuevo control.
3. Registro del instalador
Las aplicaciones de gran escala generalmente tienen un instalador. Es ideal para resolver el problema de registrar controles ActiveX en el instalador.
Cuando el usuario ejecuta el programa de instalación, estos controles ActiveX se instalarán y registrarán automáticamente en la máquina del usuario
El CD VFP7.0 viene con InstallShield, que es. una utilidad. Una herramienta popular para crear instaladores, puede crear instaladores de nivel profesional y registrar aplicaciones que usan controles ActiveX. Además, cuando luego desinstale el software usando Agregar o quitar programas del Panel de control, el instalador cancelará automáticamente las aplicaciones ActiveX. control
4. Agregar código de registro
Primero, defina una función para registrar el control:
Función MyRegsvr (lpcRegFilename, lplIsreg)
If File(lpcRegFilename)
lpcRegFilename = iif(lplIsreg, lpcRegFilename, [ /u] + lpcRegFilename)
Ejecute /n regsvr32 && Endif
Return
Endfunc
Luego puede usar la siguiente declaración para llamar a la función y completar el registro del control ActiveX (tenga en cuenta la ruta del archivo de control aquí ).
= MyRegsvr( "netshare.ocx", .T.) //Registrar control netshare.ocx
= MyRegsvr( "netshare.ocx", .F.) //Cancelar Registrar control netshare.ocx
5. Registrar función
registro de función reg
control de registro de función reg.
Al ejecutar la aplicación regsvr32.exe anterior, aparecerá un cuadro de diálogo que indica si el registro se realizó correctamente. Preste atención a si el contenido es "DllRegisterServer en netshare.ocx se realizó correctamente" o "". UnDllregisterServer...". De hecho, normalmente cada control ActiveX disponible contiene dos funciones autorregistradas, DllRegisterServer y UnDllregisterServer. Podemos utilizar el método de definición de funciones API (Declarar
De manera similar, primero personalizamos una función de registro (tenga en cuenta la situación de DllRegisterServer y UnDllregisterServer):
Function. ,isReg)
isReg = iif(type("isReg")="U", .T.., isReg)
lpProcName = iif(isReg, "DllRegisterServer ", " DllUnregisterServer" )
Declare INTEGER (lpProcName) en (lpLibFileName)
return &&lpProcName.()
Endfunc
Entonces, puede utilice esta función para completar el registro de los controles ActiveX
= DllRegister( "netshare.ocx", .T.) //Registrarse, devolver 0 correctamente
= DllRegister( " netshare. ocx", .F.) //Cancelar registro, devolver 0 exitosamente
Borrar Dlls
Pruébalo. ¡Ya no tendrás que preocuparte por los cuadros emergentes!
Nota: Este método no verifica el archivo de control ActiveX. Si el control no tiene una función DllRegisterServer válida (es decir, no hay una función autorregistrada), no se encontrarán las dos funciones API anteriores. Aún aparecerá un mensaje de error.
6. Registro de la función API
La idea de diseño de este método es: cargar el control ActiveX en la memoria, luego verificar su validez y finalmente implemente su función de registro (DllRegisterServer, UnDllregisterServer) directamente en la dirección de memoria. El método de programación es:
1. Utilice la función API de Windows LoadLibrary para cargar el control ActiveX. Utilice la función GetProcAddress para obtener la función de registro DllRegisterServer del control ActiveX (la función de cancelación del registro es) DllUnregisterserver El puntero en;
3 Utilice la función CallWindowProc para ejecutar la función de registro (DllRegisterServer, UnDllregisterServer). el control ActiveX que se ha cargado en la memoria.
Cada uno de los métodos de registro de control ActiveX anteriores tiene sus propias características. Después del uso real, el efecto es bueno. Puede utilizarlo de forma flexible según la situación real.