Installing Visual Basic 6.0 in Windows 10

Back to the past

Publicado en CodingMarkers el 28 de marzo del 2018

Installing Visual Basic 6.0 in Windows 10

I was recently requested to debug a pre-.NET application Visual Basic, so I had to set up the environment for Windows 98 development… but nowdays all that software is deprecated and has no support. This is what I learned from my experience to get it up and running, but in case you can make a choice, I’d recommend you to rewrite the code in .NET, as this kind of DLL code relies platform, and things have changed a lot in 20 years.

1.- Delete all the files from the previously failed VB6 installation attempts

Be careful to avoid deleting the recent Visual Studio versions, as they may have similar paths.

The Visual Studio 6.0 files are by default under ‘C:\Program Files (x86)’ in 64 bits systems.

C:\Program Files (x86)\Microsoft Visual Studio\Common
C:\Program Files (x86)\Microsoft Visual Studio\MSDN
C:\Program Files (x86)\Microsoft Visual Studio\MSDN98
C:\Program Files (x86)\Microsoft Visual Studio\VB98
C:\Program Files (x86)\Microsoft Visual Studio\VC98
C:\Program Files (x86)\Microsoft Visual Studio\*.HTM
C:\Program Files (x86)\Microsoft Visual Studio\*.TXT
C:\Program Files (x86)\Common Files\Microsoft Shared\MSDesigners98
C:\Program Files (x86)\Common Files\Microsoft Shared\MSDN
C:\Program Files (x86)\Common Files\Microsoft Shared\VS98
C:\Program Files (x86)\Common Files\Microsoft Shared\Wizards98

Clean up the Windows registry entrys: run ‘regedit.exe’ and delete the following keys if they exist.

HKEY_LOCAL_MACHINE\Software\Microsoft\DevStudio
HKEY_LOCAL_MACHINE\Software\Microsoft\HTML Help Collections
HKEY_LOCAL_MACHINE\Software\Microsoft\MSVSDG
HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Basic\6.0
HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Component Manager
HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Modeler
HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\6.0
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\DevStudio
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\HTML Help Collections
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\MSVSDG
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Visual Basic\6.0
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Visual Component Manager
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Visual Modeler
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\6.0
HKEY_CURRENT_USER\Software\Microsoft\DevStudio
HKEY_CURRENT_USER\Software\Microsoft\MSVSDG
HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0
HKEY_CURRENT_USER\Software\Microsoft\Visual Modeler
HKEY_CURRENT_USER\Software\Microsoft\VisualFoxPro
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\6.0

2.- Modify the installation files to adapt them to current tech

First of all you will need a copy of the Visual Studio installer in your hard drive. I copied the content of an old college licensed CD into a folder, and proceeded to edit.

  • Open ‘SETUPWIZ.INI’ with a text editor (e.g. Notepad++), and replace ‘VmPath=ie4\msjavx86.exe’, which tries to install a really old Java implementation and makes the installation process fail, with an empty va. So the first part of the file should look like this:
[setup wizard]
eula = eula.txt
NTSP = NTsp3\nt4sp3_i.exe
NTSpMinVer = 3
IE4 = ie4\ie4setup.exe
CommonFilesMin = 50
IEIni=ie4check.ini
WFCClean = setup\wfcclean.exe
readme = readmevs.htm
pid = setup.ini
MSDN = setup.exe
Acme = acmboot.exe
AcmeId = vs98ecd1.inf
STF = setup\vs98ent.stf
DCOM98 = dcom98\dcom98.exe
MSDNID = msdn3?1.inf
NtSpUrl = ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/
IeUrl = http://www.microsoft.com/ie/ie40/download/
UsrUrl = http://msdn.microsoft.com/vstudio/register/default.htm
RegUrl = http://www.microsoft.com/isapi/redir.dll?Prd=vstudio&Pver=98&Ar=register
VmPath=
  • You must also edit the ‘SETUP.EXE’ properties. Go to the context menu of the file (right click as default), select properties, and got to the ‘compatibility’ tab. Check that you have selected:
    • Compatibility mode: execute as ‘Windows XP (Service Pack 3)’.
    • Configuration: ‘execute this program as administrator’.

3.- Execute the wizard installer

  1. Open the context menu of ‘SETUP.EXE’ and choose ‘run as administrator’.
  2. Don’t install ‘Source Safe’, as it fails.
  3. When we get to ‘choose the installation mode’ select ‘Custom’. Then follow these steps:
  • Do not install (as they fail):
    • Microsoft Visual FoxPro 6.0
    • Microsoft Visual InterDev 6.0
    • Microsoft Visual SourceDafe 6.0
    • ActiveX (obsolete version, generates conflict with the current version)
  • Install the unicode libraries: from the custom main menu, select the text ‘Microsoft Visual C++ 6.0’, and the button ‘Change option’ on the right side will be set as active. Click on it and follow a similar process for ‘VC++ MFC and Template Libraries’ and ‘MS Foundation Class Libraries’. Finally select all these options:
    • Static libraries
    • Shared libraries
    • Static libraries for Unicode
    • Shared libraries for Unicode
    • Browser database
    • Source code
  • Install the database: from the main ‘Custom’ menu, click on the ‘Data Access’ text , and the button ‘Change option’ on the right side will be set as active. Click on it and make sure that ‘ADO, RDS and OLE DB Providers’ is not selected. You will get a warning message saying that this component is esential for the application, but you should ignore it, as it will crash on Windows 10. Do select only the following options:
    • Microsoft ODBC Drivers
    • Remote Data Objects and Controls
    • Data environment
  • Install the tools: from the main ‘Custom’ menu, click on the ‘Enterprise Tools’ text, and the button ‘Change option’ on the right side will be set as active. Check that ‘Visual Studio Analyzer’ is not selected. Therefore, select only:
    • Aplication Performance Explorer
    • Repository
    • Visual Component Manager
    • Visual Basic Enterprise Components
    • VC++ Enterprise Tools
    • Microsoft Visual Modeler
  • As the last step, before pressing on ‘Finish’, do not let the program configure the environment vars.
    • If you have waited more than 5 minutes and the program is still ‘configuring the system’, you can assume something has gone wrong and the install has been frozen somewhere. Cancel it, clean up (see the first section on top of this post) and start all over again, reading carefully the steps.
    • If there is an error message about the Java machine you can ignore it. At that point you should be able by then to run ‘Visual Basic’ without the MSDN help package, so you get the bare bones yet fully functional experience.

4.- Execute the application

Run it always in administrator mode (right click on Visual Basic 6.0, and select ‘run as administrator’). Then, here it is, ready to run and debug ancient DLLs.

Visual Studio 6 on windows 10
After so many trial and errors, here it is: Visual Basic 6.0

 

❗️ If you want it the program to run using a Microsoft Office 2010 instance, you will need to load some dependencies. Go to ‘Project/References’ and select:

  • Visual Basic for Applications
  • Visual Basic runtime objects and procedures
  • Visual Basic objects and procedures
  • OLE Automation
  • Microsoft Excel 15.0 Object Library
  • Microsoft Word 15.0 Object Library

5.- References

My sources should get the credit they deserve for their help:

Cómo instalar Visual Basic 6.0 en Windows 10

La última semana he tenido que pelearme con una aplicación legado escrita en Visual Basic “pre.NET”, es decir, con literalmente 20 años y con el soporte mas que obsoleto… y como hablamos de código privativo de Microsoft, no hay manera legal de utilizar una herramienta alternativa para arreglarlo. Así que me lié la manta a la cabeza y me puse a pelearme con una copia de época universitaria para hacerla correr en Windows 10, y tras finalmente tener éxito, comparto aquí el mecanismo.

Visual Basic 6.0 en Windows 10

Conste que estoy con Microsoft en que sería mas recomendable migrarla a .NET porque a día de hoy su compatibilidad es cada vez peor. Se trata de software antiguo de 32 bits, por lo que sobre 64 bits puede hacer muchísimas cosas muy extrañas.

El proceso que se describe se basa en el método ensayo-error, puede que haga falta repetir la operación varias veces hasta ajustarlo debidamente.

Borrar los ficheros de intentos de instalación anteriores de VB6
¡Cuidado con no borrar los de Visual Studio posteriores! Las versiones de 2017 o posteriores pueden tener rutas por defecto parecidas.

  • Los ficheros de Visual Studio 6 están bajo `C:\Program Files (x86)` en sistemas de 64 bits.
C:\Program Files (x86)\Microsoft Visual Studio\Common
C:\Program Files (x86)\Microsoft Visual Studio\MSDN
C:\Program Files (x86)\Microsoft Visual Studio\MSDN98
C:\Program Files (x86)\Microsoft Visual Studio\VB98
C:\Program Files (x86)\Microsoft Visual Studio\VC98
C:\Program Files (x86)\Microsoft Visual Studio\*.HTM
C:\Program Files (x86)\Microsoft Visual Studio\*.TXT
C:\Program Files (x86)\Common Files\Microsoft Shared\MSDesigners98
C:\Program Files (x86)\Common Files\Microsoft Shared\MSDN
C:\Program Files (x86)\Common Files\Microsoft Shared\VS98
C:\Program Files (x86)\Common Files\Microsoft Shared\Wizards98
  • Limpiar restos del registro de programas de Windows: ejecutar ‘regedit.exe’ y borrar las siguientes claves si existen.
HKEY_LOCAL_MACHINE\Software\Microsoft\DevStudio
HKEY_LOCAL_MACHINE\Software\Microsoft\HTML Help Collections
HKEY_LOCAL_MACHINE\Software\Microsoft\MSVSDG
HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Basic\6.0
HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Component Manager
HKEY_LOCAL_MACHINE\Software\Microsoft\Visual Modeler
HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\6.0
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\DevStudio
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\HTML Help Collections
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\MSVSDG
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Visual Basic\6.0
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Visual Component Manager
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Visual Modeler
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\6.0
HKEY_CURRENT_USER\Software\Microsoft\DevStudio
HKEY_CURRENT_USER\Software\Microsoft\MSVSDG
HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0
HKEY_CURRENT_USER\Software\Microsoft\Visual Modeler
HKEY_CURRENT_USER\Software\Microsoft\VisualFoxPro
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\6.0

Preparar los ficheros de instalación

Lo primero es conseguir una copia del instalador de Visual Studio en el disco duro, pues vamos a necesitar editar varios de los ficheros de instalación a mano. Así que copia el contenido del CD a una carpeta.
1. Editar `SETUPWIZ.INI` (por ejemplo con Notepad++), cambiando la parte de `VmPath=ie4\msjavx86.exe`, que intenta instalar una versión muy antigua de Java y falla. La primera parte deber quedar como sigue:

[setup wizard]
eula = eula.txt
NTSP = NTsp3\nt4sp3_i.exe
NTSpMinVer = 3
IE4 = ie4\ie4setup.exe
CommonFilesMin = 50
IEIni=ie4check.ini
WFCClean = setup\wfcclean.exe
readme = readmevs.htm
pid = setup.ini
MSDN = setup.exe
Acme = acmboot.exe
AcmeId = vs98ecd1.inf
STF = setup\vs98ent.stf
DCOM98 = dcom98\dcom98.exe
MSDNID = msdn3?1.inf
NtSpUrl = ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/
IeUrl = http://www.microsoft.com/ie/ie40/download/
UsrUrl = http://msdn.microsoft.com/vstudio/register/default.htm
RegUrl = http://www.microsoft.com/isapi/redir.dll?Prd=vstudio&Pver=98&Ar=register
VmPath=

2. Editar las propiedades de `SETUP:EXE`. Botón secundario sobre el fichero, propiedades, e ir a la pestaña de compatibilidad. Asegurarse de que tenemos marcado:

  •  Modo compatibilidad: ejecutar en modo compatibilidad para ‘Windows XP (Service Pack 3)’.
  • Configuración: ‘ejecutar este programa como administrador’.

Ejecutar el asistente de instalación

1. Botón derecho sobre ‘SETUP.EXE’ y elegir ‘ejecutar como administrador’.
2. No instalar ‘Source Safe’, falla.
3. Cuando lleguemos a la parte de ‘seleccionar tipo de instalación’ elegir la opción ‘Custom’ (personalizada):

  • No instalar (porque fallan):
    • Microsoft Visual FoxPro 6.0
    • Microsoft Visual InterDev 6.0
    • Microsoft Visual SourceDafe 6.0
    • ActiveX (versión obsoleta que crea conflicto con componentes actuales)
  • Instalar las librerías unicode: desde el menú principal de custom, clickar sobre el texto de ‘Microsoft Visual C++ 6.0’, y en la parte de la derecha se activará el botón ‘Change option’ en el que clikamos. Repertir el proceso sobre ‘VC++ MFC and Template Libraries’, ‘MS Foundation Class Libraries’, y allí seleccionar todas las opciones:
    • Static libraries
    • Shared libraries
    • Static libraries for Unicode
    • Shared libraries for Unicode
    • Browser database
    • Source code
  • Instalar la base de datos: ir desde el menú principal de ‘Custom’ y clickar sobre el texto de ‘Data Access’, y en la parte de la derecha se activará el botón ‘Change option’ en el que clikamos. Asegurarse de que ‘ADO, RDS and OLE DB Providers’ no está seleccionado. Sale un mensaje de que este componente es esencial para la aplicación, pero lo ignoramos, pues solo necesitamos que corra Visual Basic. Dejarlo marcado hace que la instalación falle. Seleccionar solo:
    • Microsoft ODBC Drivers
    • Remote Data Objects and Controls
    • Data environment
  • Instalar las herramientas: desde el menú principal de custom, clickar sobre el texto de ‘Enterprise Tools’, y en la parte de la derecha se activará el botón ‘Change option’ en el que clikamos. Asegurarse de que ‘Visual Studio Analyzer’ no está seleccionado. Seleccionar solo:
    • Aplication Performance Explorer
    • Repository
    • Visual Component Manager
    • Visual Basic Enterprise Components
    • VC++ Enterprise Tools
    • Microsoft Visual Modeler
  • Terminar la instalación, y no dejar que configure las variables de entorno.
    • Si pasan mas de 10 minutos y sigue configurando el sistema, asumir que se ha colgado. Cancelar, limpiar (ver borrar los ficheros de intentos de instalación anteriores de VB6) y empezar de nuevo.
    • Si sale un error actualizando la máquina de Java ignorarlo. Viene de haber eliminado la variable de path en el wizard. No permitirá instalar los discos de extras de MSDN, pero si ejecutar ‘Visual Basic’ en su versión mas simple.

Ejecutar la aplicación
Ejecutarla siempre en modo administrador (botón secundario sobre Visual Basic 6.0, ejecutar como administrador).

Para hacer correr una aplicación simple las dependencias necesarias en las referencias son:

  • Visual Basic for Applications
  • Visual Basic runtime objects and procedures
  • Visual Basic objects and procedures
  • OLE Automation
  • Microsoft Excel 15.0 Object Library
  • Microsoft Word 15.0 Object Library

Referencias: