1

I need take an old software that was built in 4D 2004 (you probably never heard about 4D but it doesn't matter) and make it compatible with Windows 7 by fooling it and making him believe he's running under Windows XP.

I thought the application was getting the version number of windows from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion and that I could change this value but I was wrong… Even if I change the values in the registry, the version number of windows returned by my application is always the same:

498139398 for Windows 7

170393861 for windows XP

Those value contains the windows version (this link explain how to extract the version number) but I don’t know where it was taken from.

If you google those numbers, you’ll find out that other applications are referring to the same version number.

I tried to find what registry was used by the application with a Process Monitor but none of the registry accessed by the application seems to be related to a windows version.

Does anyone have a clue of where those values might be coming from? Could it be outside the registry / hardcoded somewhere?

Noctis Skytower
  • 21,433
  • 16
  • 79
  • 117
The_Black_Smurf
  • 5,178
  • 14
  • 52
  • 78
  • 1
    You modified `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion`?!! Are you crazy?!!! – David Heffernan Mar 08 '12 at 18:54
  • LOL... I knew someone would say that. It was on a virtual machine I created just for that test. And guess what, when you reboot the machine, Windows will set the CurrentVersion back to its original value. So this means that the Windows version is also stored outside the registry. – The_Black_Smurf Mar 08 '12 at 19:07
  • Well, of course the Windows version isn't stored there. You need to do soooo much more than change a version string. You need compatibility mode exactly as Ben says. – David Heffernan Mar 08 '12 at 19:13

1 Answers1

5

Windows already has tools to do this. Have you tried right-clicking on the program, selecting Properties and looking at the Compatibility tab?

For more complex tricks investigate "Microsoft Application Compatibility Toolkit".

Ben Russell
  • 1,413
  • 12
  • 15