Windows version autodetection

Reece Dunn msclrhd at googlemail.com
Mon Dec 22 04:51:23 CST 2008


2008/12/22 Markus Hitter <mah at jump-ing.de>:
> Am 22.12.2008 um 05:16 schrieb Chris Robinson:
>
>> Should that matter? Plenty of Win95 apps will work in WinXP.
>
> ... because WinXP has such a version heuristic already in place?
>
> I think it's perfectly possible to do an heuristic which is sometimes
> useful, but never harms. As already mentioned, the age of the
> installer/installed files is such a data point: Apps written in 1996
> are never ever designed to run on WinXP. It's a matter of being
> conservative enough.

You could possibly do that for Windows 95 applications (unless the
application was written for Windows 3.1 and released in 96), and put
an upper version limit on the application, but that doesn't mean that
it will work best using the latest version of Windows as reported by
Wine.

The same goes for applications released after Vista was released, but
only work well on XP. The date heuristic will say "Vista", but the
application will fall over if it is not designed for some of Vista's
behaviour. For Wine, this may not be too big an issue as Wine tries to
work as any version of Windows, so shouldn't differ in behaviour.

Also, it does not matter how well the application works on a Windows
box, but how well it currently runs on Wine. If an application
supports Vista, but is making some calls that Wine does not support
yet, the application is going to break if the Windows version is
reported as Vista. Similarly if the application supports XP and GDI+
or themes, but has a fallback path for 2000 and happens to call an API
that is missing or broken on Wine.

Older applications designed for earlier versions of Windows are more
likely to work on Wine, as it is designed to be version independent
and doesn't completely change it's implementation with every other
release. The only case where this will not work is if the application
writers have got the version detection logic wrong and bail out.

The main issue is for applications written for newer versions of
Windows, or Windows components that are not yet supported, or not
completely supported in Wine. These applications may work when set to
earlier versions of Windows because they have a fallback to support
older versions.

- Reece



More information about the wine-devel mailing list