Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5175 connectés 

 


Dernière réponse
Sujet : [VB.Net] Récupérer la version de windows?
nabab Le code présenté ci dessus est de la proprieté de Guru  :D  
 
Allez en cette fin de semaine, un peu d'humour ne fait de mal à personne.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
nabab Le code présenté ci dessus est de la proprieté de Guru  :D  
 
Allez en cette fin de semaine, un peu d'humour ne fait de mal à personne.
nabab Heu un copier coller t'interesse ...
 
Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
     
    Structure OSVERSIONINFO
        Dim dwOSVersionInfoSize As Long
        Dim dwMajorVersion As Long
        Dim dwMinorVersion As Long
        Dim dwBuildNumber As Long
        Dim dwPlatformId As Long
        Dim szCSDVersion As String
    End Structure
     
    Public MonOs As OSVERSIONINFO
Guru Si tu ne mets rien il ajoute automatiquement ByVal car c'est le mode de transmission de paramètres par défaut de VB. Tu tapes simplement ByRef avant le premier paramètre.
dom01 Comment tu fais pour mettre byRef puisque moi il me met directement byVal?
 
Merci Ô Guru
Guru D'un point de vue logique cela parait plus que douteux de passer une structure qui va être modifiée par une fonction externe en ByVal. En effet dans ce cas une copie de la structure est crée et passée a la dite fonction. La structure définie dans la procédure appelante ne sera dans un tel cas pas modifiée et tu ne disposera pas de l'information retournée par la fonction.
 
Afin de vérifier que le comportement a priori normal de VB se retrouve en VB.Net, j'ai fait un test avec ton code et lors de l'execution avec ByVal cela plante mais fonctionne correctement avec ByRef. Le seul problème étant que si la plate forme est correctement identifiée, les numéros de version (majeur / mineur) et de build sont a 0.
dom01 non c'est bien byVal, d'ailleurs si j'essaye de l'enlever ou de mettre byRef, il me remet automatiquement byVal,
Merci quand meme.
Guru Il me semble qu'il faudrait enlever "ByVal" dans le passage du paramètre à la fonction de l'api Win32. En effet dans la définition de la fonction GetVersionEx, la structure lpVersionInformation est indiquée comme in/out.

 

[edit]--Message édité par Guru--[/edit]

dom01 Voila j'ai essayé pas mal de chose provenant de VB6, mais je n'ai pas réussi a récupérer la version de windows (95/98/NT/2000)
 
J'ai essayé ça (mais ça ne marche pas):
 
Dans module
    Declare Function GetVersionEx Lib "kernel32"  Alias "GetVersionExA" (ByVal lpVersionInformation As  OSVERSIONINFO) As Long
    Structure OSVERSIONINFO
        Dim dwOSVersionInfoSize As Long
        Dim dwMajorVersion As Long
        Dim dwMinorVersion As Long
        Dim dwBuildNumber As Long
        Dim dwPlatformId As Long
        Dim szCSDVersion As String
    End Structure
    Public MonOs As OSVERSIONINFO
----------------
Dans form
        Dim L As Long
        Dim Msg As String
        MonOs.dwOSVersionInfoSize = CDbl(Len(MonOs.ToString))
        L = GetVersionEx(MonOs)
        Msg = ""
        Select Case MonOs.dwPlatformId
            Case VER_PLATFORM_WIN32_NT
                Msg = Msg & "Windows NT "
            Case VER_PLATFORM_WIN32_WINDOWS
                Msg = Msg & "Windows 95 / 98"
            Case VER_PLATFORM_WIN32s
                Msg = Msg & "Win32S sous Windows 3.x (!)"
        End Select
        Msg = Msg & "Version " & Str(MonOs.dwMajorVersion) & "."
        Msg = Msg & Str(MonOs.dwMinorVersion) & "."
        Msg = Msg & Str(MonOs.dwBuildNumber) & "."
        Msg = Msg & MonOs.szCSDVersion
        MsgBox(Msg)
---------------
 
Si vous avez mieux merci.

 

[edit]--Message édité par dom01--[/edit]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)