Newsgroup: it.comp.lang.visual-basic
Titolo: Windows 2000

Salve a tutti
Come faccio a sapere tramite codice, da inserire nel mio programma, se è
presente su quella macchina Windows 2000?
Grazie per le risposte.

 ha scritto nel messaggio
news:C8T98.625$Jo.1...@twister2.libero.it...

Public Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation
As OSVERSIONINFO) As Integer
Public Type OSVERSIONINFO
   dwOSVersionInfoSize As Long
   dwMajorVersion As Long
   dwMinorVersion As Long
   dwBuildNumber As Long
   dwPlatformId As Long
   szCSDVersion As String * 128
End Type
Public Function getVersion() As String
   Dim osinfo As OSVERSIONINFO
   Dim retvalue As Integer
   osinfo.dwOSVersionInfoSize = 148
   osinfo.szCSDVersion = Space$(128)
   retvalue = GetVersionExA(osinfo)
   With osinfo
   Select Case .dwPlatformId
      Case 1
         If .dwMinorVersion = 0 Then
            getVersion = "Windows 95"
         ElseIf .dwMinorVersion = 10 Then
            getVersion = "Windows 98"
         End If
      Case 2
         If .dwMajorVersion = 3 Then
            getVersion = "Windows NT 3.51"
         ElseIf .dwMajorVersion = 4 Then
            getVersion = "Windows NT 4.0"
         ElseIf .dwMajorVersion = 5 Then
            getVersion = "Windows 2000"
         End If
      Case Else
         getVersion = "Non Identificato"
   End Select
   End With
End Function
Alberto

presente su quella macchina Windows 2000?
Oggi mi
sento Bastardo e te la metto in C++:
    OSVERSIONINFO osvi;
CString Osys;
    long junk;
 
	osvi.dwOSVersionInfoSize = 148;
junk = GetVersionEx(&osvi);
 
 
	if (junk !=0 ){
switch(osvi.dwPlatformId){
 
		case VER_PLATFORM_WIN32s:
Osys.Format("Microsoft Win32s");
			break;
 
		case
VER_PLATFORM_WIN32_WINDOWS :
			if ((osvi.dwMajorVersion > 4)
||((osvi.dwMajorVersion == 4) & (osvi.dwMinorVersion > 0))) 
			{
Osys.Format("Microsoft Windows 98");
}else{
				Osys.Format("Microsoft Windows 95");
 
			}
			break;
case VER_PLATFORM_WIN32_NT:
			if (osvi.dwMajorVersion <=3)
			{
Osys.Format("Miscrosoft Windows NT 3.x");
 
		}
 
			if
(osvi.dwMajorVersion == 4) 
			{
				Osys.Format("Microsoft Windows NT
4.X");
			}
 
                       if (osvi.dwMajorVersion == 5)
{
			Osys.Format("Microsoft Windows 2000 - NT 5");
					}
		}
 
Miii
ho avuto una giornata schifida e deprimente e mi sfogo nel NG
sono proprio
un disperato :(
Ad ogni modo ci puoi arrivare da solo ecco la struttura
OSVERSIONINFO tradotta in vb:
Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
        dwMajorVersion As Long
dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId
As Long
        szCSDVersion As String * 128      
End Type
e queste
sono le costanti
Public Const VER_PLATFORM_WIN32_NT = 2
Public Const
VER_PLATFORM_WIN32_WINDOWS = 1
Public Const VER_PLATFORM_WIN32s = 0
e questa è l'api
Public Declare Function GetVersionEx Lib "kernel32"
Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
se dwPlatformId=2 e Majorversion è 5 allora sei in win2000 
ciao
Ciao Lorenzo
(NoMoreSecrets)
--------------------------------
Inviato via 
http://usenet.iol.it
 

news:C8T98.625$Jo.1...@twister2.libero.it...
č no daiiiiiiiiiiiiii ero
stato cattivello..................
ma ci arrivava da solo :P


 ma ci arrivava da solo :P
Scusami, non volevo rovinarti lo scherzo.
Solo che quando ho postato il tuo ancora non c'era....
Alberto


:P :P :P
:)
ciao
