Setting up a Virtual PC "DOS Application"

So you have a legacy DOS application that does not work under Windows, but does work under Virtual PC.  Now you have the problem that you want to set this up for users to access, without having to explain the world of virtualization to them.  Here is what you can do:

  1. Add the command to start the application to the end of AUTOEXEC.BAT. 

    This will cause the application to start automatically when the virtual machine is booted.

  2. Download https://www.opus.co.tt/dave/shut12.zip, extract it, copy SHUTDOWN.COM to the DOS directory, and add SHUTDOWN -S to the end of AUTOEXEC.BAT.

    Now the virtual machine will turn off automatically when the DOS application is exited.

  3. Under Virtual PC, open the virtual machine settings and check Hide virtual machine menu and Hide virtual machine status bar under the Display settings:

     

    This will make your virtual machine look like this:

  4. Now you need to stop the virtual machine from prompting when the user closes the window, or exits the DOS Application.  If you are not using undo disks you can open the virtual machine settings, go to Close and select Automatically close without a message and:  and then select Turn Off.  If you are using undo disks, you need to change the close option to Turn off and delete changes.

  5. Create a shortcut on the users desktop / start menu that starts:

    "C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -pc "DOS" -launch -singlepc

    Where "DOS" is the name of your virtual machine.  This will start the virtual machine without exposing the Virtual PC Console user interface.

  6. Configure the Virtual PC security options (either through the user interface, or through the registry) in order to stop the end user from being able to access the virtual machine settings, and other aspects of the Virtual PC.

With all of this done, the user will never need to know that they are using a virtual machine to run their DOS application.  If you want to be really through you can go into the BIOS settings of the virtual machine (hit the DEL key during the early boot of the virtual machine) and go to Advanced and select Boot Settings Configuration and then enable Quite Boot.  This will stop the virtual machine from display any of the BIOS initialization text.

Cheers,
Ben