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.NET Discussion :

Recueillir les infos système en VB10 [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut Recueillir les infos système en VB10
    Bonjour,

    On utilise à mon travail un script VBS qui permet de récupérer les informations d’un PC afin de faciliter le changement de machine. Ce script indique :

    - Le nom NetBios de la machine
    - L’OS installé et le Service Pack installé
    - La liste des imprimantes installé (nom imprimante + port connecté)
    - Les lecteurs réseaux connecté
    - Les infos matériels (modèle du CPU, mémoire vive total, modèle carte graphique et modèle carte son)
    - Les infos réseaux (modèle de la carte réseau, adresse MAC, utilisation d’un DHCP ou non, adresse IP, masque, passerelle, DNS, WINS, adresse DHCP)
    - Le nom des utilisateurs du groupe « Administrateur »
    - La liste des logiciels installés

    L’ensemble de ses informations sont recueilli dans un fichier Txt.

    Bien que le script marche parfaitement, on m’a demandé de le reprendre pour y rajouter une interface graphique. Il faut que je fasse une simple application avec un bouton par option (8 boutons donc). Le tout doit à nouveau être stocké dans un fichier txt.

    Pour accomplir cette tâche, j’ai installé Visual Basic Express 2010. Pensant bêtement que VB 2010 prendrait en charge le code VBS, j’ai tenté de reprendre le code de script … et bien sûr, rien ne marche. J’ai donc compris qu’il fallait tout reprendre à zéro.

    N’étant absolument pas développeur et ayant seulement des bases en script et développement web, j’ai vite été perdu sur VB2010. J’ai beau avoir cherché sur google pendant des heures, je n’ai rien trouvé me permettant de récupérer toute les informations voulu sur VB2010 et les écrire sur un fichier txt.

    Pourriez-vous m’aider à trouver les informations que je cherche ?

    Cordialement.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    vu ce que tu trouves, il y a de forte chances que ton script vbs utilise wmi
    et wmi est aussi accessible depuis vb.net
    wmi code creator est un logiciel qui génère du code pour vbs vb.net ou c#

    pour le reste dans system.environment il y a quelques infos

    concernant l'interface, tu pose ce que tu veux à l'écran, il y a des évènements sur lesquels tu peux mettre du code (button.click etc...)

    pour écrire un fichier :
    system.io.file.writealltext("chemin du fichier", "contenu du fichier)
    tu peux donc concaténer un string avec les infos que tu as obtenu
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    Ce logiciel à l'air génial !

    Par contre, j'ai tenter de l'essayer mais les codes générés ne marchent pas.

    Par exemple, pour lister les imprimante, WMI Code Creator m'indique ceci :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Imports System
    Imports System.Management
    Imports System.Windows.Forms
     
    Namespace WMISample
     
        Public Class MyWMIQuery
     
            Public Overloads Shared Function Main() As Integer
     
                Try
                    Dim searcher As New ManagementObjectSearcher( _
                        "root\CIMV2", _
                        "SELECT * FROM Win32_Printer") 
     
                    For Each queryObj As ManagementObject in searcher.Get()
     
                        Console.WriteLine("-----------------------------------")
                        Console.WriteLine("Win32_Printer instance")
                        Console.WriteLine("-----------------------------------")
                        Console.WriteLine("Name: {0}", queryObj("Name"))
                    Next
                Catch err As ManagementException
                    MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
                End Try
            End Function
        End Class
    End Namespace
    Pour tester, je suis aller sur Visual Basic, j'ai fais nouveau projet "application windows form". J'y ai créer un bouton dans lequel j'ai copier le code. Là, Visual Studio m'indique des erreurs de synthaxe et me souligne en bleu les "Imports" et "Namespace" comme s'il ne connaissait pas les instruction.

    Quel peut être le problème ? Est-ce un problème de version ?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    il faut ajouter la référence "system.management" au projet

    ajouter une référence sert à dire qu'on va utiliser la dll

    imports sert à éviter de préfixer (par exemple au lieu de taper system.drawing.color, on peut mettre imports system.drawing en haut pour juste marquer color)

    NB : une dll peut contenir plusieurs namespace (sorte de dossier pour ranger des classes de même thème), et un même namespace peut etre exposé par plusieurs dll
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    Merveilleux ! Ca marche !!

    Maintenant que j'ai réussi a faire marcher un morceau, je vais fouiller un peu pour faire tout le reste. Je te remercie.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    Bon, j'ai casiment réussi à faire tout ce que je voulais. Il me reste deux problèmes :

    1. Je n'ai reussi à trouver la méthode pour récupérer la liste des membres du groupe administrateur local. C'est terriblement simple en batch (net use localgroup administrateurs) mais je n'ai pas trouver comment reproduire le même résultat en VB.net.

    2. Pour récupérer la liste des applications installées sur le poste, j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim VarApp
            Dim searcher As New ManagementObjectSearcher( _
                        "root\CIMV2", _
                        "SELECT * FROM Win32_Product")
            My.Computer.FileSystem.WriteAllText(CheminRapport, vbCrLf & "#### Liste des applications installees ####" & vbCrLf, True)
            For Each queryObj As ManagementObject In searcher.Get()
                VarApp = queryObj("Name")
                My.Computer.FileSystem.WriteAllText(CheminRapport, VarApp & vbCrLf, True)
            Next
    Ce code marche très bien mais est un peu lent à exécuter. J'aurais aimer y lier une progressbar pour voir l'évolution de l'exécution. Comment faire ?

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

Discussions similaires

  1. récupérer les infos système en c++
    Par Razgort dans le forum C++
    Réponses: 5
    Dernier message: 07/08/2013, 10h58
  2. Réponses: 6
    Dernier message: 09/06/2011, 21h32
  3. Comment afficher les infos systèmes en VB.NET
    Par momoh dans le forum VB.NET
    Réponses: 0
    Dernier message: 11/02/2009, 09h36
  4. [D7][Infos système] Comment lister toutes les classes WMI ?
    Par phplive dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 03/05/2006, 23h51
  5. [Infos Système] Récuperer les infos système
    Par Dolphy35 dans le forum Access
    Réponses: 3
    Dernier message: 07/12/2005, 21h20

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