Windows version uden for registreringsdatabasen?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har brug for at tage en gammel software, der blev bygget i 4D 2004 (du har sikkert aldrig hørt om 4D, men det betyder ikke noget) og gør det kompatibelt med Windows 7 ved at narre det og få ham til at tro, at han kører under Windows XP.


Jeg troede, at applikationen fik versionsnummeret til Windows fra HKEY\_LOCAL\_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion, og at jeg kunne ændre denne værdi, men jeg tog fejl ... Selvom jeg ændrede værdierne i registreringsdatabasen, returnerede versionsnummeret af Windows ved min ansøgning er det altid det samme:


498139398 til Windows 7


170393861 til Windows XP


Disse værdier indeholder Windows-versionen (dette link forklarer, hvordan man udpakker versionsnummeret), men jeg ved ikke, hvor det blev taget fra. [1]


Hvis du google disse tal, finder du ud af, at andre applikationer henviser til det samme versionsnummer.


Jeg forsøgte at finde, hvad registreringsdatabasen blev brugt af applikationen med en Process Monitor, men ingen af ​​registreringsdatabasen adgang til programmet synes at være relateret til en Windows-version.


Har nogen en anelse om, hvor disse værdier kan komme fra? Kunne det være uden for registreringsdatabasen/hardcoded et sted?

Bedste reference


Windows har allerede værktøjer til at gøre dette. Har du forsøgt at højreklikke på programmet, skal du vælge Egenskaber og kigge på fanen Kompatibilitet?


For mere komplekse tricks undersøg 'Microsoft Application Compatibility Toolkit'.