Avatar billede omen Nybegynder
23. juni 2003 - 01:06 Der er 14 kommentarer og
1 løsning

Find Windows version/build number

Hvordan lader man sit program opdage Windows versionen, og skrive til en label hvilket OS man kører. F.eks hvis man går efter build number, hvis den opdager 2600, kommer der til at stå Windows XP i label.
Avatar billede kabbak Professor
23. juni 2003 - 08:16 #2
MsgBox "Microsoft Excel is using " & Application.OperatingSystem
Avatar billede dk_akj Nybegynder
23. juni 2003 - 08:18 #3
kabbak >> Den er til VBA ikke vb

//akj
Avatar billede omen Nybegynder
23. juni 2003 - 13:17 #4
Jeg skal bruge den til Visual Basic 6. Når den finder Windows versionen skal den skrive det til en label ved program start!
Avatar billede omen Nybegynder
23. juni 2003 - 13:19 #5
Jeg skal også bruge det til så programmet ved hvad den skal gøre ved de forskellige styresystemer, da det er forskellige operationer til hvert af dem! Så jeg f.eks kan bruge :

If lblWinVer.Caption = "Windows XP" Then
'ting der skal gøres i WinXP
Avatar billede dk_akj Nybegynder
23. juni 2003 - 13:20 #6
så skal du bruge mit eks.

Et modul:
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
               
                    Select Case .dwMinorVersion
                        Case 0
                            getVersion = "Windows 95"
                        Case 10
                            getVersion = "Windows 98"
                        Case 90
                            getVersion = "Windows Mellinnium"
                    End Select
   
                Case 2
                    Select Case .dwMajorVersion
                        Case 3
                            getVersion = "Windows NT 3.51"
                        Case 4
                            getVersion = "Windows NT 4.0"
                        Case 5
                            If .dwMinorVersion = 0 Then
                                getVersion = "Windows 2000"
                            Else
                                getVersion = "Windows XP"
                            End If
                    End Select
   
                Case Else
                  getVersion = "Failed"
            End Select

              End With
            End Function
på formen

Private Sub Form_Load()
Label1.Caption = getVersion()

End Sub


//akj
Avatar billede omen Nybegynder
23. juni 2003 - 13:26 #7
Synes jeg prøvede det igår, men der kom bare til at stå getVersion() i den label. Men jeg prøver her senere.
Avatar billede dk_akj Nybegynder
23. juni 2003 - 13:48 #8
Så er det vel fordi du har lavet den sådan:
Label1.Caption = "getVersion()"

//akj
Avatar billede omen Nybegynder
23. juni 2003 - 13:53 #9
Ved du hvad jeg skal tilføje af kode i modulet, hvis den også skal kunne finde Windows Server 2003 ?
Avatar billede dk_akj Nybegynder
23. juni 2003 - 13:58 #10
Prøv at lave en testversion

ret i modulet lige efter With osinfo så det bliver til

With osinfo

msgbox ".dwPlatformId = " & .dwPlatformId
msgbox ".dwMajorVersion = " & .dwMajorVersion
msgbox ".dwMinorVersion = " & .dwMinorVersion


Test det på 2003 serveren og giv mig tallene.

//akj
Avatar billede omen Nybegynder
23. juni 2003 - 14:03 #11
Nej ok, det må blive en anden gang, da jeg ikke selv kører med 2003. Så skal jeg først lige ha fundet nogle. Men jeg takker.
Avatar billede dk_akj Nybegynder
23. juni 2003 - 14:04 #12
Selvtak.

//akj
Avatar billede omen Nybegynder
24. juni 2003 - 16:21 #13
Hey, hvis du stadig er ledig til Win2003 problem. Hjælper det hvis du ved at Win2003 har version nummer: 5.2.3790 ?
Avatar billede omen Nybegynder
24. juni 2003 - 17:45 #14
Nej jeg fandt selv ud af det :)

                  Case 5
                      If .dwMinorVersion = 0 Then
                          getVersion = "Windows 2000"
                      ElseIf .dwMinorVersion = 2 Then
                          getVersion = "Windows Server 2003"
                      Else
                          getVersion = "Windows XP"
                      End If
Avatar billede dk_akj Nybegynder
24. juni 2003 - 21:10 #15
Fint :-)

//akj
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging