I have a program where I need to display a different link to a different download based on what version of windows a user is running.
Using this answer I am able to
Assuming you're programming in .Net:
System.Environment properties include:
Is64BitOperatingSystem
Is64BitProcess
OSVersion
ProcessorCount
Etc etc
GetVersionEx will set wProductType
to VER_NT_SERVER
for Windows Server 2003/2008/2008R2/2012, versus VER_NT_WORKSTATION
for Windows XP/7/8.
You already know how to get whether the OS is 32-bit or 64-bit, so with a bit of P/Invoke (GetVersionEx is here), you should be able to figure out the rest.
Alternatively, if you don't want to use P/Invoke, you could use WMI, and take a look at the Win32_OperatingSystem
class, which has the same information in the ProductType
property. I wouldn't bother doing it this way unless you really had to.