No announcement yet.

Run older programs using Vista

  • Filter
  • Time
  • Show
Clear All
new posts

  • Run older programs using Vista

    Has anyone used the program compatibility wizard to run older programs with Vista?

    Windows Vista was designed with backward compatibility for software in mind, that is: much software was designed to run with versions of Windows before Windows Vista will run just fine on Vista. However some programs my not run well or will not run at all. If you find that on old program doesn’t run correctly ...
    The world is full of apathy, but who cares?

  • #2
    You should basically be able to do the same thing just by setting the properties for the program's shortcut. If you really need to go "old school" with an application, then right-click on the shortcut, select Properties and then the Compatibility tab. For example, here's how I have things setup for Visual Basic 6.0:

    With those settings, basically the application is going to work just as it did on XP. Sometimes it's not necessary to disable themes or desktop composition (the Aero interface with transparency, etc.) but in the case of VB6 you need to do it otherwise the form designer doesn't work correctly.
    Attached Files
    Mike Stefanik


    • #3
      Isl InnoSetup or other installation programs allowed to create
      a program folder like c:\demo? Without the folder the shortcut
      to c:\demo\program.exe will not be found.
      The world is full of apathy, but who cares?


      • #4
        Installers run with administrative privileges, so they can create folders anywhere on the local system. Generally speaking, it's recommended that you install programs under C:\Program Files (or the localized equivalent) rather than off the root of the disk. However, Vista won't stop the installer from creating a folder there if that's really where you want things to go.
        Mike Stefanik


        • #5
          Very good news. I have lots of programs out there that might need to be moved. What do you do with old programs where the user didn't want to pay for support 20 years ago?
          I'll try to go by the new installation standards by updating my InnsoSetup.
          Thanks for all your postings on this subject.
          The world is full of apathy, but who cares?


          • #6
            In most cases I don't think you'll have a problem. With legacy applications on Vista, probably the most commonly encountered issue is programs that assume that they can create files in their own directory, rather than asking Windows for a location to store them. They may also attempt to create registry keys in places like HKEY_LOCAL_MACHINE\Software.

            In that case, Vista uses what's called "virtualization" where file I/O and registry access are silently redirected to a user-writable location. It's something completely transparent to the user and your application, but it can be confusing if you go hunting for that file and can't find it.

            An example. Let's say your program is installed in C:\Program Files\MyProduct and on XP and earlier, you used an INI file to store configuration data in the same folder as the executable. So the path to the INI file would be something like C:\Program Files\MyProduct\MyProgram.ini

            On Vista, if you attempt to create and/or modify that file, the operating system knows that C:\Program Files is protected and the file I/O will fail because the user won't have the appropriate privileges to create the file. So, it will silently redirect that file I/O to C:\Users\UserName\AppData\Local\VirtualStore\Program Files\MyProduct\MyProgram.ini where the user will have permission to create and modify that file. Again, this is something that your program doesn't even need to be aware of. But if your customer called for support and you said "Okay, email me your INI file" they wouldn't find it where you expected it to be. It would be in the "virtual store" instead. Just something to be aware of for situations like that.
            Mike Stefanik


            • #7
              Set the compatibility programmatically

              This code worked on XP. You can try it on Vista.

              SUB SetCompatibility(BYVAL sEXEPath AS STRING)
                  IF VersionXP = 1 THEN
                      SetRegValue %HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers", _
                                      sEXEPath, "WIN2000"
                  END IF
              END SUB
              Peter Redei


              • #8
                Clean install or update?

                If a clean install is performed MANY old programs will have to be reloaded into the vista test partition 2 on a multi-boot setup. I've cloned XP SP3 into 2 partitions and will update the 2nd partition. Would just doing the update be a bad choice because the update will sugar coat some of the problems that might occur? Getting new video adaptor and performing today. OEM copy or Microsoft copy (make any big difference?)
                Clean install with update:
                Gathering the right people, content and resources, IT Pro gives professionals insight into the technologies and skills needed to take on the challenges

                the Windows XP license is forfeited
                That doesn't sound good.
                Last edited by Mike Doty; 6 Aug 2008, 07:05 AM.
                The world is full of apathy, but who cares?


                • #9
                  By the time I update the machine, I can buy a refurbished one with Vista that is better.
                  I wasn't planning on finding a 64-bit while at it. Should check on prices more frequently.
                  I'll know anyway in 2-days. Got the fast one.

                  64-bit machine with Vista for $249

                  Last edited by Mike Doty; 6 Aug 2008, 11:43 AM.
                  The world is full of apathy, but who cares?