Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4,VB5,VB6
Expertise: Intermediate
Dec 11, 1999

Determine the Windows version (without any API call)

You can use the GetVersion or GetVersionEx API functions to determine which Windows version the application is running on. However, there is a much simpler solution, based on the fact that Windows NT creates an environment variable named "OS" while Windows 95/98 don't. So you can quickly discern between Windows 9x and NT using this one-liner:

' the OS environment variable returns "Windows_NT" or a null string
isWindowsNt = Environ$("OS") <> ""
Windows 2000 (at least the RC1 version of the Advanced Server edition) does support the OS environment variable, but it returns the string "Windows_NT", so this variable can't be used to discern Windows NT and 2000. However, Windows 2000 apparently creates more environment variables than Windows NT, so you can use any one of them, for example the PROGRAMFILES variable:

If Len(Environ$("OS")) = 0 Then
    Debug.Print "Windows 95/98"
ElseIf Len(Environ$("PROGRAMFILES")) = 0 Then
    Debug.Print "Windows NT"
Else
    Debug.Print "Windows 2000"
End If
IMPORTANT: As mentioned above, this code is based on tests performed on Windows 2000 Advanced Server Release Candidate 1. It is possible that the Professional edition of Windows 2000 behaves differently, and also that the final version of Windows 2000 will load a different value in the OS environment variable, thus making the above code unnecessary.
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date