1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

detectar sistema operativo visual basic

Discussão em 'Programação' iniciada por eljogador, 19 de Março de 2009. (Respostas: 4; Visualizações: 1786)

  1. eljogador

    eljogador Power Member

    pessoal existe alguma forma de detectar qual o sistema operativo que estamos a usar no visual basic?
     
  2. 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 :)
     
  3. ribeiro55

    ribeiro55 Power Member

    E em .NET, basta isto:
    Código:
    My.Computer.Info.OSFullName
     
  4. eljogador

    eljogador Power Member

    obrigado pessoal mas eu tinha pesquisado no google e não tinha encontrado nada!
    provavelmente pesquisei mal!
    Obrigado
     

Partilhar esta Página