I have a situation where a particular Win32 app is soon going to look for certain versions of Windows to run on and exclude running on others. I can't upgrade the OS at this time, so to buy more time, I was wondering if there's a way to detect what the app looks at specifically (when starting or even installing) to make the OS determination. Armed with that information, I would then have enough info to attempt some way of fooling it. Without that information, I'd be guessing. Thanks
This may help you. Using Program Compatibility Mode in Windows 7. However you can't use it to run applications which need a more recent version of Windows than what you are running. In that case, there's nothing you can do.
Right, compatibility mode wouldn't help. On the registry, that's certainly possible, but it doesn't seem to be the obvious one: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion (I'm trying Process Monitor to see what I can see, but that's a needle in a haystack). Also, it seems to be unaffected by using HighVersionLie in Application Verifier (part of the SDK), but that only works if the program makes certain function calls. It's written in Python, apparently, though I'm not sure that's pertinent.
there a several ways to determine, also from registry. you need to refine for READ and SUCCESS events on registry and system files (eg explorer) what about to transfer the whole windows into a virtual machine? and in special we talk about XP. XP should not be a live system.
Yes, I've filtered, but there is still a tremendous amount of Registry reading, almost an absurd amount. I'm still looking at it (at this point, it's as much for the challenge as anything else). A VM is definitely a possibility, but it creates a complication, since abundant data that this app uses must remain outside the VM, and the app is dismissive of network drives. Still, there might be a way with SUBST or the like.