Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Jak sprawdzić jaki jest system?
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003
Jak sprawdzić jaki jest system?

Tak jak w temacie


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

08-02-2005 20:43
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004


Private Type OSVERSIONINFOEX
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128
        wServicePackMajor As Integer
        wServicePackMinor As Integer
        wSuiteMask As Integer
        wProductType As Byte
        wReserved As Byte
End Type

Private osvi As OSVERSIONINFOEX
Public osID As String

Private Const VER_NT_WORKSTATION As Long = &H1
Private Const VER_NT_DOMAIN_CONTROLLER As Long = &H2
Private Const VER_NT_SERVER As Long = &H3
Private Const VER_WORKSTATION_NT As Long = &H40000000
Private Const VER_SUITE_SMALLBUSINESS As Long = &H1&
Private Const VER_SUITE_ENTERPRISE As Long = &H2&
Private Const VER_SUITE_TERMINAL As Long = &H10&
Private Const VER_SUITE_DATACENTER As Long = &H80&
Private Const VER_SUITE_SINGLEUSERTS As Long = &H100&
Private Const VER_SUITE_PERSONAL As Long = &H200&
Private Const VER_SUITE_BLADE As Long = &H400
Private Const VER_PLATFORM_WIN32_NT As Long = 2
Private Const VER_PLATFORM_WIN32_WINDOWS As Long = 1
Private Const VER_PLATFORM_WIN32s As Long = 0

Public Function GetSysName() As String

Select Case osvi.dwPlatformId

   
    Case VER_PLATFORM_WIN32_NT
       
        osID = "Win32_NT"
        'Typ platformy dla rodziny NT
       
        If osvi.dwMajorVersion = 5 And osvi.dwMinorVersion = 2 Then
            GetSysName = "Microsoft Windows Server 2003 "
        End If

        If osvi.dwMajorVersion = 5 And osvi.dwMinorVersion = 1 Then
            GetSysName = "Microsoft Windows XP "
        End If

        If osvi.dwMajorVersion = 5 And osvi.dwMinorVersion = 0 Then
            GetSysName = "Microsoft Windows 2000 "
        End If

        If osvi.dwMajorVersion <= 4 Then
            GetSysName = "Microsoft Windows NT "
        End If
       
        'Workstation
        If osvi.wProductType = VER_NT_WORKSTATION Then

                If osvi.dwMajorVersion = 4 Then
                    GetSysName = GetSysName & "Workstation 4.0 "
                ElseIf osvi.wSuiteMask And VER_SUITE_PERSONAL Then
                        GetSysName = GetSysName & "Home Edition "
                    Else
                        GetSysName = GetSysName & "Professional "
                End If
               
        'Serwer
        ElseIf osvi.wProductType = VER_NT_SERVER Then

                If osvi.dwMajorVersion = 5 And osvi.dwMinorVersion = 2 Then

                    If osvi.wSuiteMask And VER_SUITE_DATACENTER Then
                        GetSysName = GetSysName & "Datacenter Edition "
                    ElseIf osvi.wSuiteMask And VER_SUITE_ENTERPRISE Then
                        GetSysName = GetSysName & "Enterprise Edition "
                    ElseIf osvi.wSuiteMask = VER_SUITE_BLADE Then
                        GetSysName = GetSysName & "Web Edition "
                    Else
                        GetSysName = GetSysName & "Standard Edition "
                    End If

                ElseIf osvi.dwMajorVersion = 5 And osvi.dwMinorVersion = 0 Then

                    If osvi.wSuiteMask And VER_SUITE_DATACENTER Then
                        GetSysName = GetSysName & "Datacenter Server "
                    ElseIf (osvi.wSuiteMask And VER_SUITE_ENTERPRISE) Then
                        GetSysName = GetSysName & "Advanced Server "
                    Else
                        GetSysName = GetSysName & "Server "
                    End If

                Else  'Windows NT 4.0

                    If osvi.wSuiteMask And VER_SUITE_ENTERPRISE Then
                        GetSysName = GetSysName & "Server 4.0, Enterprise Edition "
                    Else
                        GetSysName = GetSysName & "Server 4.0 "
                    End If
                End If
        End If
   
    'Rodzina Windows 95

    Case VER_PLATFORM_WIN32_WINDOWS

    osID = "Win32_Windows"
   
    '95
        If osvi.dwMajorVersion = 4 And osvi.dwMinorVersion = 0 Then
            If Left(Trim(osvi.szCSDVersion), 1) = "C" Or Left(Trim(osvi.szCSDVersion), 1) = "B" Then
                GetSysName = "Microsoft Windows 95 OSR2 "
            Else
                GetSysName = "Microsoft Windows 95 "
            End If
        End If

    '98
        If osvi.dwMajorVersion = 4 And osvi.dwMinorVersion = 10 Then
            If Left(Trim(osvi.szCSDVersion), 1) = "A" Then
                GetSysName = "Microsoft Windows 98 SE"
            Else
                GetSysName = "Microsoft Windows 98"
            End If
        End If

    'Me
        If osvi.dwMajorVersion = 4 And osvi.dwMinorVersion = 90 Then
                GetSysName = "Microsoft Windows Millennium Edition"
        End If

    Case VER_PLATFORM_WIN32s
    osID = "Win32s"
        GetSysName = "Microsoft Win32s"

End Select


End Function


[Post edytowany dnia 08-02-2005 22:23 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

08-02-2005 22:22
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Nie działa .
Kod wkleiłem do modułu, a z form_load odwołałem się do funkcji GetSysName i zwrócił mi "Microsoft Win32s" mimo iż odpaliłem na 98Se. Zaraz jeszcze odpalę pod XP - zobaczę, co powie


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

09-02-2005 00:29
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Może daj na początku Option Explicit -być może brakuje jakieś stałej

Poza tym brakuje najważniejeszej rzeczy ale myślalem ze samo do tego dojedziesz

Public Function GetSystem() As Long
osvi.dwOSVersionInfoSize = Len(osvi)
GetSystem& = GetVersionEx(osvi)
End Function

[Post edytowany dnia 09-02-2005 00:36 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

09-02-2005 00:33
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Niestety, nic to nie daje . Pod XP to samo...


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

09-02-2005 00:36
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Niemożliwe bo u mnie i pod 98 działa i pod XP

Tą funckje trzeba wywołać na samym początku

Poza tym chyba logiczne jest ze ci pokazało jak ci pokazało skoro VER_PLATFORM_WIN32s = 0 a nie pobrałeś najpierw informacji do typu osvi

[Post edytowany dnia 09-02-2005 00:47 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

09-02-2005 00:42
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Wywala mi błąd, że nie ma zadeklarowanej funckji "GetVersionEx", ale z tym mogę se poradzić, tylko zauważylem "Public Function GetSystem() As Long", czyli funkcja zwraca wartość, ale gdzie upchać tą zwracaną wartość to nie wiem...



Poza tym brakuje najważniejeszej rzeczy ale myślalem ze sam do tego dojedziesz


1.Jak ktoś mi daje funkcję, to nie sprawdzam, domyślam się, że ona działa
2.Jeżeli zadaję pytanie, to znaczy, że temat, który poruszam jest dla mnie czarną magią


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

09-02-2005 01:40
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Hmmm -może poprostu sprawdź co zwraca funkcja GetSystem - bo z kodu, który napisałem wyraźnie wynika, że zwraca dokłądnie to co zwraca funkcja GetVersionEx czyli zero jak wystąpił błąd

A co do punktu 1 i 2 drugiego - hmmm jaka byłaby nauka programowania gdyby wszystko podawano jak na talerzu ?? Bez urazy

Ja jak zadam pytanie to mimo iż czekam na odpowiedź sam próbuję coś wykombinować

Pozdrawiam

[Post edytowany dnia 09-02-2005 01:46 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

09-02-2005 01:45
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Ja najpierw próbuję coś wykombinować, później zadaję pytanie .

Odpowiedź na moje pytanie znalazłem w Api-guide pod hasłem GetVersionEx . Dzięki za poświęcony mi czas


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

09-02-2005 16:02
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Tylko że ten przykład w API-Guide to dokładnie to samo tyle, ze bardzo skrócone


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

09-02-2005 16:12
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Wszystkich odpowiedzi: 9 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1