¿Cómo puedo encontrar en Visual C++ si un archivo OCX (por ejemplo, flash.ocx) está registrado o no?¿Cómo puedo encontrar en Visual C++ si un archivo OCX (por ejemplo, flash.ocx) está registrado o no?
¿Cómo puedo encontrar en Visual C++ si un archivo OCX (por ejemplo, flash.ocx) está registrado o no?
Respuesta
Si quiere decir desde el propio archivo .ocx, usted probablemente tiene dos opciones:
Lea la biblioteca de tipos desde el .ocx, omita los UUID de objeto y de interfaz y ver si todo existe en el registro en HKCR \ CLSID, HKCR \ TypeLib etc.
Pasa por todos los objetos registrados en HKCR \ CLSID en el registro y mira si alguno de ellos hace referencia a tu .ocx como referencia de InprocServer32. Es posible que deba realizar la expansión de la ruta y la variable de entorno en la ruta que leyó para probar la coincidencia.
El primer método no necesariamente le dirá si es la misma versión de la .OCX instalado, aunque (aunque se puede comprobar la ruta en el disco para cada uno). El segundo desafortunadamente va a ser muy lento.
Probablemente, lo más simple sea volver a registrar el .ocx, creo.
Puede verificar si el clsid de la ocx está bajo HKEY_CLASSES_ROOT. Aquí hay un código simple que uso para detectar en tiempo de ejecución para verificar si un ocx especificado está registrado.
#include<windows.h>
...
//Check if an ocx is resisted, and push warning
HKEY subKey = NULL;
LONG ret = RegOpenKeyEx(HKEY_CLASSES_ROOT, _T("CLSID\\{XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX}"), NULL, KEY_QUERY_VALUE|KEY_WOW64_32KEY, &subKey);
//Note that some CLSID of versioned ocx is under HKEY_CLASS_ROOT\TypeLib\{XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX}
if(ret != ERROR_SUCCESS)
{
TCHAR message[512];
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,ret,0,message,512,NULL);
CString msgStr = message;
#ifdef DEBUG //Extra message on DEBUG mode
AfxMessageBox(msgStr.GetBuffer());
#endif
AfxMessageBox(_T("OCX not registered"), MB_OK);
}
else
{
AfxMessageBox(_T("OCX is registered"), MB_OK);
RegCloseKey(subKey); //Remember to close opened key handle.
}
- 1. detectar si una clase OCX se ha registrado en Windows
- 2. ¿Cómo puedo comprobar si un dll COM está registrado en C#
- 3. Error: MSCOMCT2.OCX o una de sus dependencias no
- 4. Python: compruebe si un archivo está vacío o no
- 5. ¿Cómo encontrar si una matriz json está vacía o no?
- 6. ¿Cómo puedo retrotraer un archivo registrado en Clearcase?
- 7. Visual C++ no puede encontrar "tipos de Windows" como, por ejemplo, PVOID, DWORD, ULONG, etc.
- 8. registerReceiver for Broadcast only si aún no está registrado?
- 9. ¿Cómo puedo saber si NSTimer está activo o no?
- 10. ¿Cómo se comprueba que COM dll está registrado o no con C#?
- 11. ¿Cómo puedo averiguar si un archivo es un archivo o directorio si no existe?
- 12. ¿Cómo saber si un archivo de Scala modificado con IntelliJ Idea se guarda y si está registrado en CVS?
- 13. ¿Cómo verificar si un archivo ya está abierto por otro proceso en C?
- 14. ¿Por qué mi evento onclick no está registrado en Firefox?
- 15. ¿Cómo encontrar si un ResultSet está vacío o no en Java?
- 16. Usando Node.js, ¿cómo puedo verificar si un nombre de dominio está registrado?
- 17. ¿Cómo determinar si el proveedor de VFPOLEDB está instalado/registrado?
- 18. ¿Cómo puedo determinar si un archivo está vacío?
- 19. ¿Dónde puedo encontrar un ejemplo de archivo de base de datos SQLite o volcarlo?
- 20. ¿Por qué no puedo encontrar o usar UrlEncode en Visual Studio 2010?
- 21. ¿Cómo encontrar un personaje específico está presente en un NSString o no?
- 22. Usa OCX sin registrarlo
- 23. DB2: ¿Cómo puedo encontrar si una columna está presente en una tabla o lista de tablas?
- 24. archivo por lotes: encontrar si es subcadena en la cadena (no en un archivo)
- 25. ¿Cómo puedo verificar si con ASP.NET 4 está registrado para ejecutar en IIS 7.5?
- 26. ¿Cómo puedo verificar si existe o no un recurso incrustado?
- 27. Dentro de un archivo por lotes, ¿cómo puedo saber si se está ejecutando un proceso?
- 28. ¿Cómo encontrar si la computadora local está en un dominio?
- 29. ¿Cómo puedo saber si un archivo está abierto en otra parte de C en Linux?
- 30. ¿Cómo puedo saber si una ruta determinada es un directorio o un archivo? (C/C++)