From: Philippe Mermod on 28 May 2010 03:59 Hi Everyone, I'm using Windows 7 Professional (Version 6.1, Build 7600) The OS(TRUE) function returns : Windows Server 2008 R2 (Version 6.1, Build 7600) Did someone could resolve this ? -- Phil Mermod Crystal Reports Library for Visual Objects http://www.pkl.ch/dev/
From: Karl Wochele on 28 May 2010 04:09 Hi Philippe, as OS() is older than Win7 it won't be able to recognize it. The following class (found somtime in this forum) might help you. Of course you will have to expand it when new Windows-versions will appear... STRUCT _WinOSVersionInfoEx MEMBER dwOSVersionInfoSize AS DWORD MEMBER dwMajorVersion AS DWORD MEMBER dwMinorVersion AS DWORD MEMBER dwBuildNumber AS DWORD MEMBER dwPlatformId AS DWORD MEMBER DIM szCSDVersion[128] AS BYTE // add EX members MEMBER wServicePackMajor AS WORD MEMBER wServicePackMinor AS WORD MEMBER wSuiteMask AS WORD MEMBER wProductType AS BYTE MEMBER wReserved AS BYTE CLASS OsVersion EXPORT OsName AS STRING EXPORT MajorVersion AS DWORD EXPORT MinorVersion AS DWORD EXPORT BuildNumber AS DWORD EXPORT PlatformId AS DWORD // Plattform ID (defines see VER_PLATFORM_WIN32) EXPORT DIM CSDVersion[128] AS BYTE EXPORT ServicePackMajor AS WORD EXPORT ServicePackMinor AS WORD EXPORT SuiteMask AS WORD EXPORT ProductType AS BYTE METHOD Init() CLASS OsVersion SELF:OsName := "" SELF:MajorVersion := 0 SELF:MinorVersion := 0 SELF:BuildNumber := 0 SELF:PlatformId := 0 SELF:ServicePackMajor := 0 SELF:ServicePackMinor := 0 SELF:SuiteMask := 0 SELF:ProductType := 0 SELF:Refresh() RETURN SELF METHOD Refresh() CLASS OsVersion LOCAL strWinOsVersionInfo IS _WinOSVersionInfoEx LOCAL sMessage AS STRING strWinOsVersionInfo.dwOSVersionInfoSize := _SIZEOF( _WINOSVERSIONINFOEX ) IF GetVersionEx( @strWinOsVersionInfo ) // Get the Version Info's from the OS SELF:MajorVersion := strWinOsVersionInfo.dwMajorVersion SELF:MinorVersion := strWinOsVersionInfo.dwMinorVersion SELF:BuildNumber := strWinOsVersionInfo.dwBuildNumber SELF:PlatformId := strWinOsVersionInfo.dwPlatformId SELF:CSDVersion := strWinOsVersionInfo.szCSDVersion SELF:ServicePackMajor := strWinOsVersionInfo.wServicePackMajor SELF:ServicePackMinor := strWinOsVersionInfo.wServicePackMinor SELF:SuiteMask := strWinOsVersionInfo.wSuiteMask SELF:ProductType := strWinOsVersionInfo.wProductType IF SELF:PlatformId == VER_PLATFORM_WIN32S sMessage := "Win32S Version on Windows 3.1 " ELSEIF SELF:PlatformId == VER_PLATFORM_WIN32_WINDOWS IF SELF:MinorVersion == 0 sMessage := "Windows 95" ELSEIF SELF:MinorVersion == 10 IF SELF:CSDVersion == 65 sMessage := "Windows 98 Second Edition" ELSE sMessage := "Windows 98" ENDIF ELSEIF SELF:MinorVersion == 90 sMessage := "Windows ME" ENDIF ELSEIF SELF:PlatformId == VER_PLATFORM_WIN32_NT IF SELF:MajorVersion == 3 sMessage := "Windows NT 3.51" ELSEIF SELF:MajorVersion == 4 sMessage := "Windows NT4" ELSEIF SELF:MajorVersion == 5 .AND. SELF:MinorVersion == 0 sMessage := "Windows 2000" ELSEIF SELF:MajorVersion == 5 .AND. SELF:MinorVersion == 1 sMessage := "Windows XP" ELSEIF SELF:MajorVersion == 5 .AND. SELF:MinorVersion == 2 sMessage := "Windows Server 2003" ELSEIF SELF:MajorVersion == 6 .AND. SELF:MinorVersion == 0 IF SELF:ProductType == VER_NT_WORKSTATION sMessage := "Windows Vista" ELSE sMessage := "Windows Server 2008" ENDIF ELSEIF SELF:MajorVersion == 6 .AND. SELF:MinorVersion == 1 IF SELF:ProductType == VER_NT_WORKSTATION sMessage := "Windows 7" ELSE sMessage := "Windows Server 2008 R2" ENDIF ENDIF IF SELF:ProductType == VER_NT_WORKSTATION IF _AND( SELF:SuiteMask, VER_SUITE_PERSONAL ) == VER_SUITE_PERSONAL sMessage += " Home Edition" ELSE sMessage += " Professional" ENDIF ELSEIF SELF:ProductType == VER_NT_SERVER // bit flags IF _AND( SELF:SuiteMask, VER_SUITE_DATACENTER ) == VER_SUITE_DATACENTER sMessage += " DataCenter Server" ELSEIF _AND( SELF:SuiteMask, VER_SUITE_ENTERPRISE ) == VER_SUITE_ENTERPRISE sMessage += " Advanced Server" ELSEIF SELF:MinorVersion == 2 .AND. _AND( SELF:SuiteMask, VER_SUITE_BLADE ) == VER_SUITE_BLADE sMessage += " Web Server" ELSE sMessage += " Standard Server" ENDIF ENDIF ENDIF // "Windows 2000 Version 5.0" sMessage += " Version: " + NTrim(SELF:MajorVersion) + "." + NTrim(SELF:MinorVersion) sMessage += " SP: " + NTrim(SELF:ServicePackMajor) + "." + NTrim(SELF:ServicePackMinor) sMessage += " Build: " + NTrim(SELF:BuildNumber) // terminal services IF GetSystemMetrics( SM_REMOTECONTROL ) != 0 sMessage += " (Terminal Services)" ENDIF // terminal services IF GetSystemMetrics( SM_REMOTESESSION ) != 0 sMessage += " (Remote Session)" ENDIF SELF:OsName := sMessage ELSE SELF:MajorVersion := 0 SELF:MinorVersion := 0 SELF:BuildNumber := 0 SELF:PlatformId := 0 SELF:OsName := "Windows-Version nicht zu ermitteln" ENDIF RETURN NIL DEFINE SM_REMOTECONTROL := 0x00002001 DEFINE SM_REMOTESESSION := 0x00001000 DEFINE VER_NT_DOMAIN_CONTROLLER := 2 DEFINE VER_NT_SERVER := 3 DEFINE VER_NT_WORKSTATION := 1 DEFINE VER_SUITE_BLADE := 0x00000400 DEFINE VER_SUITE_DATACENTER := 0x00000080 DEFINE VER_SUITE_ENTERPRISE := 0x00000002 DEFINE VER_SUITE_PERSONAL := 0x00000200 DEFINE VER_SUITE_SMALLBUSINESS := 0x00000001 DEFINE VER_SUITE_TERMINAL := 0x00000010 HTH Karl Am 28.05.2010 09:59, schrieb Philippe Mermod: > Hi Everyone, > > I'm using Windows 7 Professional (Version 6.1, Build 7600) > > The OS(TRUE) function returns : Windows Server 2008 R2 (Version > 6.1, Build 7600) > > Did someone could resolve this ? >
From: Philippe Mermod on 28 May 2010 04:25 Hi Karl, I have VO 2.8 SP3 (2837) : in the whatsnew of SP3, Windows 7 is already mentioned and under OS() function, it's written : - The OS() function has been updated to return more recent OS versions when called with a parameter. It seems that Windows 7 was not yet considered or not coded correctly regarding the MS doc : OSVERSIONINFO : http://msdn.microsoft.com/en-us/library/ms724834(v=VS.85).aspx GetVersionEx : http://msdn.microsoft.com/en-us/library/ms724451(v=VS.85).aspx -- Phil Mermod Crystal Reports Library for Visual Objects http://www.pkl.ch/dev/ Karl Wochele wrote: > Hi Philippe, > > as OS() is older than Win7 it won't be able to recognize it. > The following class (found somtime in this forum) might help > you. Of course you will have to expand it when new > Windows-versions will appear... > > STRUCT _WinOSVersionInfoEx > MEMBER dwOSVersionInfoSize AS DWORD > MEMBER dwMajorVersion AS DWORD > MEMBER dwMinorVersion AS DWORD > MEMBER dwBuildNumber AS DWORD > MEMBER dwPlatformId AS DWORD > MEMBER DIM szCSDVersion[128] AS BYTE > > // add EX members > MEMBER wServicePackMajor AS WORD > MEMBER wServicePackMinor AS WORD > MEMBER wSuiteMask AS WORD > MEMBER wProductType AS BYTE > MEMBER wReserved AS BYTE > > CLASS OsVersion > EXPORT OsName AS STRING > EXPORT MajorVersion AS DWORD > EXPORT MinorVersion AS DWORD > EXPORT BuildNumber AS DWORD > EXPORT PlatformId AS DWORD // Plattform ID (defines see > VER_PLATFORM_WIN32) EXPORT DIM CSDVersion[128] AS BYTE > > EXPORT ServicePackMajor AS WORD > EXPORT ServicePackMinor AS WORD > EXPORT SuiteMask AS WORD > EXPORT ProductType AS BYTE > > METHOD Init() CLASS OsVersion > > SELF:OsName := "" > > SELF:MajorVersion := 0 > SELF:MinorVersion := 0 > SELF:BuildNumber := 0 > SELF:PlatformId := 0 > > SELF:ServicePackMajor := 0 > SELF:ServicePackMinor := 0 > SELF:SuiteMask := 0 > SELF:ProductType := 0 > > SELF:Refresh() > > RETURN SELF > > METHOD Refresh() CLASS OsVersion > LOCAL strWinOsVersionInfo IS _WinOSVersionInfoEx > LOCAL sMessage AS STRING > > strWinOsVersionInfo.dwOSVersionInfoSize := _SIZEOF( > _WINOSVERSIONINFOEX ) > > IF GetVersionEx( @strWinOsVersionInfo ) > // Get the Version Info's from the OS > SELF:MajorVersion := strWinOsVersionInfo.dwMajorVersion > SELF:MinorVersion := strWinOsVersionInfo.dwMinorVersion > SELF:BuildNumber := strWinOsVersionInfo.dwBuildNumber > SELF:PlatformId := strWinOsVersionInfo.dwPlatformId > SELF:CSDVersion := strWinOsVersionInfo.szCSDVersion > > SELF:ServicePackMajor := strWinOsVersionInfo.wServicePackMajor > SELF:ServicePackMinor := strWinOsVersionInfo.wServicePackMinor > SELF:SuiteMask := strWinOsVersionInfo.wSuiteMask > SELF:ProductType := strWinOsVersionInfo.wProductType > > IF SELF:PlatformId == VER_PLATFORM_WIN32S > sMessage := "Win32S Version on Windows 3.1 " > > ELSEIF SELF:PlatformId == VER_PLATFORM_WIN32_WINDOWS > > IF SELF:MinorVersion == 0 > sMessage := "Windows 95" > > ELSEIF SELF:MinorVersion == 10 > IF SELF:CSDVersion == 65 > sMessage := "Windows 98 Second Edition" > ELSE > sMessage := "Windows 98" > ENDIF > > ELSEIF SELF:MinorVersion == 90 > sMessage := "Windows ME" > > ENDIF > > ELSEIF SELF:PlatformId == VER_PLATFORM_WIN32_NT > > IF SELF:MajorVersion == 3 > sMessage := "Windows NT 3.51" > > ELSEIF SELF:MajorVersion == 4 > sMessage := "Windows NT4" > > ELSEIF SELF:MajorVersion == 5 .AND. SELF:MinorVersion == 0 > sMessage := "Windows 2000" > > ELSEIF SELF:MajorVersion == 5 .AND. SELF:MinorVersion == 1 > sMessage := "Windows XP" > > ELSEIF SELF:MajorVersion == 5 .AND. SELF:MinorVersion == 2 > sMessage := "Windows Server 2003" > > ELSEIF SELF:MajorVersion == 6 .AND. SELF:MinorVersion == 0 > > IF SELF:ProductType == VER_NT_WORKSTATION > sMessage := "Windows Vista" > ELSE > sMessage := "Windows Server 2008" > ENDIF > > ELSEIF SELF:MajorVersion == 6 .AND. SELF:MinorVersion == 1 > > IF SELF:ProductType == VER_NT_WORKSTATION > sMessage := "Windows 7" > ELSE > sMessage := "Windows Server 2008 R2" > ENDIF > > ENDIF > > > IF SELF:ProductType == VER_NT_WORKSTATION > > IF _AND( SELF:SuiteMask, VER_SUITE_PERSONAL ) == > VER_SUITE_PERSONAL sMessage += " Home Edition" > ELSE > sMessage += " Professional" > ENDIF > > ELSEIF SELF:ProductType == VER_NT_SERVER > // bit flags > IF _AND( SELF:SuiteMask, VER_SUITE_DATACENTER ) == > VER_SUITE_DATACENTER sMessage += " DataCenter Server" > > ELSEIF _AND( SELF:SuiteMask, VER_SUITE_ENTERPRISE ) == > VER_SUITE_ENTERPRISE sMessage += " Advanced Server" > > ELSEIF SELF:MinorVersion == 2 .AND. _AND( SELF:SuiteMask, > VER_SUITE_BLADE ) == VER_SUITE_BLADE sMessage += " Web > Server" > > ELSE > sMessage += " Standard Server" > > ENDIF > ENDIF > ENDIF > > // "Windows 2000 Version 5.0" > sMessage += " Version: " + NTrim(SELF:MajorVersion) + "." + > NTrim(SELF:MinorVersion) > > sMessage += " SP: " + NTrim(SELF:ServicePackMajor) + "." + > NTrim(SELF:ServicePackMinor) > > sMessage += " Build: " + NTrim(SELF:BuildNumber) > > > // terminal services > IF GetSystemMetrics( SM_REMOTECONTROL ) != 0 > sMessage += " (Terminal Services)" > ENDIF > > // terminal services > IF GetSystemMetrics( SM_REMOTESESSION ) != 0 > sMessage += " (Remote Session)" > ENDIF > > SELF:OsName := sMessage > > ELSE > SELF:MajorVersion := 0 > SELF:MinorVersion := 0 > SELF:BuildNumber := 0 > SELF:PlatformId := 0 > SELF:OsName := "Windows-Version nicht zu ermitteln" > ENDIF > > RETURN NIL > > DEFINE SM_REMOTECONTROL := 0x00002001 > DEFINE SM_REMOTESESSION := 0x00001000 > > DEFINE VER_NT_DOMAIN_CONTROLLER := 2 > DEFINE VER_NT_SERVER := 3 > > DEFINE VER_NT_WORKSTATION := 1 > DEFINE VER_SUITE_BLADE := 0x00000400 > > DEFINE VER_SUITE_DATACENTER := 0x00000080 > DEFINE VER_SUITE_ENTERPRISE := 0x00000002 > DEFINE VER_SUITE_PERSONAL := 0x00000200 > DEFINE VER_SUITE_SMALLBUSINESS := 0x00000001 > DEFINE VER_SUITE_TERMINAL := 0x00000010 > > > HTH > Karl > > > Am 28.05.2010 09:59, schrieb Philippe Mermod: > > Hi Everyone, > > > > I'm using Windows 7 Professional (Version 6.1, Build 7600) > > > > The OS(TRUE) function returns : Windows Server 2008 R2 > > (Version 6.1, Build 7600) > > > > Did someone could resolve this ? > >
|
Pages: 1 Prev: CAVO2.8 compiler error messages Next: Problem Cavo27b with Windows Server 2008 64 bit |