Muchos programadores continúan desarrollando aplicaciones con Visual Basic 6, y son muchos más los que mantienen software compilado con este lenguaje.
Hace unos días un colega me comentaba sobre la imposibilidad de hacer funcionar VB6 en Windows 8 de 64 bits, y más tarde en la misma semana otro colega me consultaba como hacer correr un ejecutable de VB6 en Windows 8 y 7, con esas dos casualidades en la misma semana me puse a buscar una solución.
Tu aplicación VB6 en Windows 7 y 8
En muchos casos no es necesario correr VB6 porque no eres programador o programas en otro lenguaje más nuevo, pero siempre podemos encontrarnos alguna antigua aplicación Visual Basic 6 que correr en Windows 7. Para ese caso el Visual Basic 6 Runtime fue actualizado, de forma que podremos correr aplicaciones VB6 en Windows 7 o Vista sin problemas, para esto debes ir a la web de Soporte de Runtime de Visual Basic 6.
Instalando VB6 en Windows 7 y 8
Si lo que quieres es correr el IDE de Visual Basic 6 para programar, uno de los primeros problemas con que nos encontramos es que el instalador setup.exe de VB6 está compilado en 16bits, recordemos que VB6 y 5 son de la década de los ’90. Desde 2000 en adelante todos debimos pasarnos a .NET, pero eso implicaba pensar orientado a objetos y muchos se resisten, incluso hoy día.
Los sistemas operativos Windows de 64bits corren casi sin problemas el software de 32bits, pero no logran ejecutar el añejo de 16bits.
Afortunadamente solo el setup.exe del instalado es de 16bits, el resto del VB6, e incluso todo Visual Studio no lo es.
Nota: debes tener en cuenta que en Visual Basic Empresarial el setup.exe sí es de 32bits, por tanto corre bien en Windows 7 de 32 y 64bits. En este caso no es necesario utilizar los siguientes cambios.
Instalar Visual Basic 6 en Windows 7 y 8 de 64bits
- Copiar el CD de Visual Basic en una carpeta vb6 en el disco duro
- 1. en caso de error «Debe ejecutar el asistente de instalación antes de ejecutar este programa de instalación», ejecute el SETUP.exe Original antes de sobreescribirlo al continuar con el paso 2, y seguir los pasos de instalación normales hasta que salga un cartel de la compatibilidad de sistemas de x64. Solución vía Santi Casares
- En esa nueva carpeta, copia todos los archivos de \vb6\setup\ en la carpeta principal recien creada \vb6\
- Ahora renombramos el archivo vb98ent.stf por acmsetup.stf. En algunas versiones como la Profesional, busquen vs98pro.stf, y tengan en cuenta que vs es de Visual Studio, vb de Visual Basic
- Ahora, en vez de ejecutar el instalador mediante setup.exe ejecutamos acmsetup.exe. Ten en cuenta de ejecutarlo como Administrador !!
Porque son necesarios estos cambios ?
Tanto setup como acmsetup utilizan guiones de instalación que le van informando que archivo copiar y que dll y ocx registrar durante la instalación, justamente de eso se trata “instalar una aplicación”. El guión de setup.exe es vb98ent.stf (o vs98pro.stf), pero como dijimos setup.exe no funciona por tanto usaremos acmsetup.exe que requiere que el guión se llame acmsetup.stf.
Esa es la sencilla razón del copiado y renombre de archivo, con eso basta para tener Visual Basic 6 instalado en nuestro Windows 7, incluyendo la versión de 64bits.
Debemos tener en cuenta que el ejecutable de VB6 debe ser configurado para ejecutar como Administrador, de otra forma no grabará los cambios que realicemos en nuestros fuentes VB6.
Instalar VB6 Service Pack 6 en Windows 7 y 8
Con respecto al Service Pack 6 de Visual Basic 6, el instalador setupsp6.exe también tiene problemas, pero ya cuenta con acmsetup.exe que podemos utilizar para instalar. Igualmente se trata de varios DLL y OCX que en último caso podemos descomprimir y luego reemplazar y/o registrar. En este último caso, podemos hacerlo solo para los que utilizamos en nuestra aplicación y no recargar de DLLs innecesarias.
Descargar: VB6 Service Pack 6
DLL y OCX soportadas con Actualizaciones
La siguiente lista son las DLL y OCX que no se soportan tal como vienen en VB6, pero contamos con actualizaciones o nuevas versiones que si corren en Windows 7
- dao350.dll
- mdac_typ.exe
- mschart.ocx
- msdaerr.dll
- msdatl2.dll
- msexch35.dll
- msexcl35.dll
- msjet35.dll
- msjint35.dll
- msjt4jlt.dll
- msjter35.dll
- msjtor35.dll
- msltus35.dll
- mspdox35.dll
- msrd2x35.dll
- msrepl35.dll
- mstext35.dll
- msxbse35.dll
- odbctl32.dll
- oledb32x.dll
DLL y OCX no soportadas
En el caso de la siguiente lista no hay soporte ni actualizaciones, deberíamos cambiar nuestra aplicación, igualmente casi todas se arrastran de la versión 4 o 5, en la versión 6 ya no se aconsejaba su utilización, si estas así te atrasaste 15 años!
- anibtn32.ocx
- graph32.ocx
- keysta32.ocx
- autmgr32.exe
- autprx32.dll
- racmgr32.exe
- racreg32.dll
- grid32.ocx
- msoutl32.ocx
- spin32.ocx
- gauge32.ocx
- gswdll32.dll
- ciscnfg.exe
- olecnv32.dll
- rpcltc1.dll
- rpcltc5.dll
- rpcltccm.dll
- rpclts5.dll
- rpcltscm.dll
- rpcmqcl.dll
- rpcmqsvr.dll
- rpcss.exe
- dbmsshrn.dll
- dbmssocn.dll
- windbver.exe
- msderun.dll
- odkob32.dll
Configurando VB6 y su IDE en Windows 7 y 8
Bien, hemos logrado hacer funcionar VB6, pero hay algunos problemas que notamos al utilizar el IDE para modificar Formularios y Objetos dentro de el, concretamente se enlentece al mover o cambiar el tamaño de los objetos y titila sin parar. Esto se debe a que VB6 no soporta full la interfaz de Windows 7 (y seguramente en Vista pase lo mismo), VB6 no soporta transparencias, Themes y otros efectos visuales.
La solución es sencilla, ya que podemos desactivar esta parte de Windows 7 al ejecutar Visual Basic 6, para esto realizamos los siguientes pasos:
- Ir a la carpeta de instalación de VB6, algo como: C:\Program Files (x86)\Microsoft Visual Studio\VB98
- Seleccionar el ejecutable VB6.exe
- Botón derecho
- Propiedades
- Seleccionar la solapa Compatibilidad
- En este punto debemos seleccionar y activar los siguientes puntos:
- Marcar: Ejecutar este programa en modo compatibilidad para: Windows XP SP3
- Marcar: Deshabilitar los temas visuales
- Marcar: Deshabilitar la composición de escritorio
- Marcar: Deshabilitar el ajuste de escala de la pantalla si se usa la configuración elevada de ppp
Listo, ahora si podemos utilizar sin problemas nuestro Visual Basic 6 en Windows 7 o Vista
Es bueno recordar que VB6 tiene sus años y el lenguaje fue mejorado en varias oportunidades, siempre es mejor olvidar VB6 y comenzar a programar Orientado a Objetos y pasarte a dotNet. Para ayudarlos en esto les recomiendo dos libros Migración de Visual Basic 6 a Visual Basic .Net y Moving to Microsoft Visual Studio 2010
Más info: