Darren DICK
d.dick at uws.edu.au
Tue Aug 31 22:24:58 CDT 2004
Gustav and Stuart
Many thanks to you both
Both sets of code Work like a charm
Many thanks to you both
Have a great day
Darren
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock
Sent: Tuesday, 31 August 2004 9:57 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] A2K:Determine OS and version via VBA
Hi Darren
> I used to have a little code jewel from the list tucked away in my own
> personal little archive that would allow me to determine the OS in
> VBA- But alas since the death of the laptop my personal stash has gone
> So....Anyone got any code to determine the OS and version?
We use this module:
<code>
Option Compare Database
Option Explicit
' Major Minor
' OS Platform Version Version Build
'
' Windows 95 1 4 0
' Windows 98 1 4 10 1998
' Windows 98SE 1 4 10 2222
' Windows ME 1 4 90 3000
' NT 3.51 2 3 51
' NT 2 4 0 1381
' 2000 2 5 0
' XP 2 5 1 2600
' Server 2003 2 5 2
' Code based on MS API documentation.
' 2004-07-02. Assembled by Cactus Data ApS, CPH.
Private Const VER_PLATFORM_WIN32s As Long = 0 ' Win32s on Windows
3.1x.
Private Const VER_PLATFORM_WIN32_WINDOWS As Long = 1 ' Windows 95,
Windows 98, Windows ME.
Private Const VER_PLATFORM_WIN32_NT As Long = 2 ' Windows NT,
Windows 2000, Windows XP, Windows Server 2003.
Private Const clngCSDVersion As Long = 128
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * clngCSDVersion
End Type
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA"
( _
ByRef lpVersionInformation As OSVERSIONINFO) _
As Long
Public Function GetVersion() As String
' Retrieves version of current Windows OS.
' Returns version as full string.
'
' 2004-07-02. Cactus Data ApS, CPH.
Dim OSV As OSVERSIONINFO
Dim strVersion As String
OSV.dwOSVersionInfoSize = Len(OSV)
OSV.szCSDVersion = Space$(clngCSDVersion)
GetVersionEx OSV
With OSV
' Service Pack info string.
Debug.Print .szCSDVersion
Select Case .dwPlatformId
Case VER_PLATFORM_WIN32s ' Win32s on Windows 3.1x.
strVersion = "Windows 3.1"
Case VER_PLATFORM_WIN32_WINDOWS ' Windows 95, Windows 98,
Select Case .dwMinorVersion ' Windows ME.
Case 0
strVersion = "Windows 95"
Case 10
If (.dwBuildNumber And &HFFFF&) = 2222 Then
strVersion = "Windows 98SE"
Else
strVersion = "Windows 98"
End If
Case 90
strVersion = "Windows ME"
End Select
Case VER_PLATFORM_WIN32_NT ' Windows NT, Windows 2000, Windows
XP,
Select Case .dwMajorVersion ' Windows Server 2003.
Case 3
strVersion = "Windows NT 3.51"
Case 4
strVersion = "Windows NT 4.0"
Case 5
Select Case .dwMinorVersion
Case 0
strVersion = "Windows 2000"
Case 1
strVersion = "Windows XP"
Case 2
strVersion = "Windows Server 2003"
End Select
End Select
Case Else
strVersion = "Unknown"
End Select
End With
GetVersion = strVersion
End Function
Public Function IsWinXP() As Boolean
' Checks current Windows OS.
' Returns True if OS is Win XP or Server 2003.
'
' 2004-07-07. Cactus Data ApS, CPH.
Dim OSV As OSVERSIONINFO
Dim booVersion As Boolean
OSV.dwOSVersionInfoSize = Len(OSV)
GetVersionEx OSV
With OSV
Select Case .dwPlatformId
Case VER_PLATFORM_WIN32_NT ' Windows NT, Windows 2000, Windows
XP,
Select Case .dwMajorVersion ' Windows Server 2003.
Case 5
Select Case .dwMinorVersion
Case 0
' strVersion = "Windows 2000"
Case 1
' strVersion = "Windows XP"
booVersion = True
Case 2
' strVersion = "Windows Server 2003"
booVersion = True
End Select
End Select
End Select
End With
IsWinXP = booVersion
End Function
</code>
Have fun!
/gustav
--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com