IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Determine si OS 32/64 bits


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 12
    Points
    12
    Par défaut Determine si OS 32/64 bits
    Bonjour,

    j'ai un programme avec deux exe (1 exe 32 bits et un 1 exe 64 bits)

    je cherche a créer un programme VB6 avec un bouton, qui lorsque l'on clic dessus va exécuter le bon exe en fonction du type d'architecture de l'OS.

    Je ne trouve pas de fonction en VB6 qui peut retourner cette infos.

    Auriez-vous une piste ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    J'ai trouvé ce que je cherchais, la solution ci dessous pour ceux qui se pose la même question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function GetOsBitness() As String
        Dim ProcessorSet As Object
        Dim CPU As Object
     
        Set ProcessorSet = GetObject("Winmgmts:"). _
            ExecQuery("SELECT * FROM Win32_Processor")
        For Each CPU In ProcessorSet
            GetOsBitness = CStr(CPU.AddressWidth)
        Next
    End Function

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    J'espère que je ne dis pas de bêtises !!!

    Le code présenté, me semble-t-il, se rapporte au processeur et non au système d'exploitation. Même chose si on utilise la classe Win32_ComputerSystem.

    Si on installe un OS 32 bits sur une machine ayant un processeur 64 bits, on aura avec le code pré-cité "64 bits" (à vérifier sur une telle machine)

    A mon humble avis, si on utilise la classe Win32_OperatingSystem serait plus adéquat avec la propriété OSArchitecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Private Function GetOsArchitecture() As String
        Dim Oper_Systems As Object
        Dim OS As Object
     
        Set Oper_Systems = GetObject("Winmgmts:").ExecQuery("SELECT * FROM Win32_OperatingSystem")
        For Each OS In Oper_Systems
            If Left(OS.Version, 3) > "5.1" Then ' 5.1 pour XP
                GetOsArchitecture = Left(Trim(OS.OSArchitecture), 2) & " bits"
            Else
               GoTo Message
            End If
        Next
     
    Message:
       ' "OSArchitecture" n'est pas disponible pour toutes les plateformes
        GetOsArchitecture = "32 bits"
    End Function
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour l'Autodidacte,
    Puisque tu as les moyens de comparer en ayant installé ma librairie
    amuses-toi à comparer ta réponse avec WMI et celle fournie par ma librairie en utilisant RDTSC comme compteur de cycles.
    WMI comme FSO sont des pieux à trainer


    Bon week-end

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. determiner si un process est en 64 bits
    Par sofiane80 dans le forum Unix
    Réponses: 3
    Dernier message: 19/03/2010, 10h04
  2. Determiner, dans un binaire, le nb de bits a 1
    Par danidan75 dans le forum Requêtes
    Réponses: 0
    Dernier message: 13/10/2009, 21h52
  3. Comment determiner la position d'un bit modifier?
    Par thx2003 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 17/12/2003, 16h08
  4. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 13h27
  5. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo