domingo, 23 de noviembre de 2008

Malditos OCX en Windows VISTA


Hola a tod@s, si estás como yo, migrando a Windows Vista, seguramente te habrás encontrado con algún mensaje de error al intentar ejecutar alguna aplicación antigua hecha con VB 6.0 por algún OCX que no se encuentra en el sistema, etc…

Microsoft tiene cuenta de ello, por eso ha elaborado un documento en donde expone que algunos componentes que se incluían en Windows XP, muchos de ellos pertenecientes al SP 6 de VB, ya no se incluirán en Windows VISTA, y nos indica los que han sido testados y son soportados VISTA, y aunque no lo digan, en este documento tampoco dice donde los podemos encontrar, así que búscate la vida… El documento lo podéis consultar aquí

A mi concretamente mi programa utilizaba el COMDLG32.OCX, que no estaba en el sistema de VISTA, este aparece en la lista de OCX soportados, así que manos a la obra:

Buscamos el COMDL32.OCX, se puede encontrar fácilmente en Internet o podríamos copiarlo de un Windows XP u otro ordenador que lo tenga, es un control, no es necesario instalarlo, pero si registrarlo.

El siguiente paso es registrarlo, para esto, lo común, es copiar el archivo en cuestión en la carpeta System32 , luego debemos ejecutar la sentencia :


regsvr32 C:\windows\system32\COMDLG32.OCX


OJO: Antes no era necesario, pero en Güindows VISTA, es necesario ejecutar esta sentencia con privilegios de administrador, no va a salir la ventana de permitir y demás, así que debemos seleccionar el comando cmd.exe (para abrir una ventana de Shell) y con el botón derecho darle a ejecutar como administrador, sino lo hacemos así recibiremos un mensaje de error.


Con esto nuestra aplicación podría empezar a funcionar, digo podría porque en mi caso, me ha dado el mismo problema con MSFLEXGRD.OCX, pero no hay problema, sería repetir el mismo proceso con las librerías que vaya necesitando.


Esto es común para el sistema, es decir, si dos aplicaciones utilizan el mismo control, no deberemos repetir la operación por cada una, ya que en aplicaciones antiguas tipo las de VB, los controles y librerías eran compartidas.

Espero que os sirva de algo.

Saludetes.

2 comentarios:

Anónimo dijo...

muchas gracias por la informacion me sirvio de mucho ya que tengo windows vista

Javier dijo...

En mi caso al intentar registrar el archivo comdlg32.ocx, me aparecio una ventana de error:

Error al cargar el modulo
"c:\windows\system32\comdlg32.ocx

Asegurese de que el archivo binario esta almacenado en la ruta de acceso especificada o depurelo para comprobar si hay problemas en el archivo binario o los archivos .dll dependientes

Nota: El archivo comdlg32.ocx ya esta guardado en la carpeta system32

¿Alguna recomendacion?