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.