detectar sistema operativo visual basic

pessoal existe alguma forma de detectar qual o sistema operativo que estamos a usar no visual basic?

Boas,

existe pois :cool:
Em VB 6 podes usar isto. Basta procurares no google :P

Crias um modulo e metes este código
Código:
[COLOR=blue]Option Explicit 

Public Declare Function [/COLOR]GetVersionExA [COLOR=blue]Lib [/COLOR]"kernel32" _ 
               (lpVersionInformation [COLOR=blue]As [/COLOR]OSVERSIONINFO) As [COLOR=blue]Integer 
  
Public Type [/COLOR]OSVERSIONINFO 
  dwOSVersionInfoSize [COLOR=blue]As Long 
  [/COLOR]dwMajorVersion [COLOR=blue]As Long 
  [/COLOR]dwMinorVersion [COLOR=blue]As Long 
  [/COLOR]dwBuildNumber [COLOR=blue]As Long 
  [/COLOR]dwPlatformId [COLOR=blue]As Long 
  [/COLOR]szCSDVersion [COLOR=blue]As String [/COLOR]* 128 
[COLOR=blue]End Type 

Public Const [/COLOR]VER_PLATFORM_WIN32s = 0        [COLOR=green]' Win32s on Windows 3.1 
[/COLOR][COLOR=blue]Public Const [/COLOR]VER_PLATFORM_WIN32_WINDOWS = 1 [COLOR=green]' Windows 95, Windows 98, or Windows Me 
[/COLOR][COLOR=blue]Public Const [/COLOR]VER_PLATFORM_WIN32_NT = 2      [COLOR=green]' Windows NT, Windows 2000, Windows XP, or Windows Server 2003 family. 
[FONT=monospace]
'                           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 
[/FONT]
[/COLOR][COLOR=blue]Public Function [/COLOR]getVersion() [COLOR=blue]As String 
Dim [/COLOR]OSInfo [COLOR=blue]As [/COLOR]OSVERSIONINFO 
[COLOR=blue]Dim [/COLOR]retvalue [COLOR=blue]As Integer 
  
[/COLOR]OSInfo.dwOSVersionInfoSize = 148 
OSInfo.szCSDVersion = Space$(128) 
retvalue = GetVersionExA(OSInfo) 
  
[COLOR=blue]With [/COLOR]OSInfo 
     [COLOR=blue]Select Case [/COLOR].dwPlatformId 
         [COLOR=blue]Case [/COLOR]VER_PLATFORM_WIN32s           [COLOR=green]' Win32s on Windows 3.1 
              [/COLOR]getVersion = "Windows 3.1" 
               
         [COLOR=blue]Case [/COLOR]VER_PLATFORM_WIN32_WINDOWS    [COLOR=green]' Windows 95, Windows 98, 
              [/COLOR][COLOR=blue]Select Case [/COLOR].dwMinorVersion   [COLOR=green]' or Windows Me 
                  [/COLOR][COLOR=blue]Case [/COLOR]0 
                      getVersion = "Windows 95" 
                  [COLOR=blue]Case [/COLOR]10 
                      [COLOR=blue]If [/COLOR](OSInfo.dwBuildNumber [COLOR=blue]And [/COLOR]&HFFFF&) = 2222 [COLOR=blue]Then 
                          [/COLOR]getVersion = "Windows 98SE" 
                      [COLOR=blue]Else 
                          [/COLOR]getVersion = "Windows 98" 
                      [COLOR=blue]End If 
                  Case [/COLOR]90 
                      getVersion = "Windows Me" 
              [COLOR=blue]End Select 
     
         Case [/COLOR]VER_PLATFORM_WIN32_NT         [COLOR=green]' Windows NT, Windows 2000, Windows XP, 
              [/COLOR][COLOR=blue]Select Case [/COLOR].dwMajorVersion   [COLOR=green]' or Windows Server 2003 family. 
                  [/COLOR][COLOR=blue]Case [/COLOR]3 
                      getVersion = "Windows NT 3.51" 
                  [COLOR=blue]Case [/COLOR]4 
                      getVersion = "Windows NT 4.0" 
                  [COLOR=blue]Case [/COLOR]5 
                      [COLOR=blue]Select Case [/COLOR].dwMinorVersion 
                          [COLOR=blue]Case [/COLOR]0 
                              getVersion = "Windows 2000" 
                          [COLOR=blue]Case [/COLOR]1 
                              getVersion = "Windows XP" 
                          [COLOR=blue]Case [/COLOR]2 
                              getVersion = "Windows Server 2003" 
                      [COLOR=blue]End Select 
              End Select 
                     
         Case Else 
              [/COLOR]getVersion = "Failed" 
               
     [COLOR=blue]End Select 
             
End With 
End Function [/COLOR]
Depois no form onde quiseres chamar fazes Ex:
Código:
Private Sub Form_Load()
    getVersion
End Sub
Tens aqui um exemplo. have fun

Btw: Se tiveres o Visual Studio 6.0 instalado procura nas tools uma ferramenta que la esta chamada API Viewer e tens la tudo :)
 
Back
Topo