Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6]-Rilevare sistema operativo

    Non sono riuscito a trovare il modo per rilevare il sistema operativo. Mi servirebbe questa funzione perchè il mio software gira solo su XP e vorrei fare un controllo all'avvio dell'applicazione!
    GRazie

  2. #2
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Funziona, l'ho provato.

    codice:
    'In a Form
    Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
    Private Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128
    End Type
    Private Sub Form_Load()
        Dim OSInfo As OSVERSIONINFO, PId As String
        'KPD-Team 1998
        'URL: http://www.allapi.net/
        'KPDTeam@Allapi.net
        'Set the graphical mode to persistent
        Me.AutoRedraw = True
        'Set the structure size
        OSInfo.dwOSVersionInfoSize = Len(OSInfo)
        'Get the Windows version
        Ret& = GetVersionEx(OSInfo)
        'Chack for errors
        If Ret& = 0 Then MsgBox "Error Getting Version Information": Exit Sub
        'Print the information to the form
        Select Case OSInfo.dwPlatformId
            Case 0
                PId = "Windows 32s "
            Case 1
                PId = "Windows 95/98"
            Case 2
                PId = "Windows NT "
        End Select
        Print "OS: " + PId
        Print "Win version:" + str$(OSInfo.dwMajorVersion) + "." + LTrim(str(OSInfo.dwMinorVersion))
        Print "Build: " + str(OSInfo.dwBuildNumber)
    End Sub

  3. #3
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Il codice di prima distingue solo la piattaforma, quindi se hai installato XP ti dice Windows NT.

    Ecco il codice per il SISTEMA Operativo E per la piattaforma:

    In un form con due label (lbl_operatingplatform e lbl_operatingsystem)
    codice:
    Private Sub Form_Load()
        Select Case OperatingPlatform
            Case Enum_OperatingPlatform.Platform_Windows_32: lbl_operatingplatform.Caption = "Windows 32"
            Case Enum_OperatingPlatform.Platform_Windows_95_98_ME: lbl_operatingplatform.Caption = "Windows 95/98/ME"
            Case Enum_OperatingPlatform.Platform_Windows_NT_2K_XP: lbl_operatingplatform.Caption = "Windows NT/2K"
        End Select
        Select Case OperatingSystem
            Case System_Windows_32: lbl_operatingsystem.Caption = "Windows 32"
            Case System_Windows_95: lbl_operatingsystem.Caption = "Windows 95"
            Case System_Windows_98: lbl_operatingsystem.Caption = "Windows 98"
            Case System_Windows_ME: lbl_operatingsystem.Caption = "Windows ME"
            Case System_Windows_NT: lbl_operatingsystem.Caption = "Windows NT"
            Case System_Windows_2K: lbl_operatingsystem.Caption = "Windows 2K"
            Case System_Windows_XP: lbl_operatingsystem.Caption = "Windows XP"
        End Select
    End Sub
    In un modulo:
    codice:
    Private Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Long
    Private Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128
    End Type
    Public Enum Enum_OperatingPlatform
      Platform_Windows_32 = 0
      Platform_Windows_95_98_ME = 1
      Platform_Windows_NT_2K_XP = 2
    End Enum
    Public Enum Enum_OperatingSystem
      System_Windows_32 = 0
      System_Windows_95 = 1
      System_Windows_98 = 2
      System_Windows_ME = 3
      System_Windows_NT = 4
      System_Windows_2K = 5
      System_Windows_XP = 6
    End Enum
    Public Function OperatingPlatform() As Enum_OperatingPlatform
        Dim lpVersionInformation As OSVERSIONINFO
        lpVersionInformation.dwOSVersionInfoSize = Len(lpVersionInformation)
        Call GetVersionExA(lpVersionInformation)
        OperatingPlatform = lpVersionInformation.dwPlatformId
    End Function
    Public Function OperatingSystem() As Enum_OperatingSystem
        Dim lpVersionInformation As OSVERSIONINFO
        lpVersionInformation.dwOSVersionInfoSize = Len(lpVersionInformation)
        Call GetVersionExA(lpVersionInformation)
        If (lpVersionInformation.dwPlatformId = Platform_Windows_32) Then
            OperatingSystem = System_Windows_32
        ElseIf (lpVersionInformation.dwPlatformId = Platform_Windows_95_98_ME) And (lpVersionInformation.dwMinorVersion = 0) Then
            OperatingSystem = System_Windows_95
        ElseIf (lpVersionInformation.dwPlatformId = Platform_Windows_95_98_ME) And (lpVersionInformation.dwMinorVersion = 10) Then
            OperatingSystem = System_Windows_98
        ElseIf (lpVersionInformation.dwPlatformId = Platform_Windows_95_98_ME) And (lpVersionInformation.dwMinorVersion = 90) Then
            OperatingSystem = System_Windows_ME
        ElseIf (lpVersionInformation.dwPlatformId = Platform_Windows_NT_2K_XP) And (lpVersionInformation.dwMajorVersion < 5) Then
            OperatingSystem = System_Windows_NT
        ElseIf (lpVersionInformation.dwPlatformId = Platform_Windows_NT_2K_XP) And (lpVersionInformation.dwMajorVersion = 5) And (lpVersionInformation.dwMinorVersion = 0) Then
            OperatingSystem = System_Windows_2K
        ElseIf (lpVersionInformation.dwPlatformId = Platform_Windows_NT_2K_XP) And (lpVersionInformation.dwMajorVersion = 5) And (lpVersionInformation.dwMinorVersion = 1) Then
            OperatingSystem = System_Windows_XP
        End If
    End Function
    Fammi sapere se va bene!

  4. #4
    Funziona alla perfezione! Grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.