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 :

Une référence à un membre non partagé requiert une référence d'objet.


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 158
    Points : 56
    Points
    56
    Par défaut Une référence à un membre non partagé requiert une référence d'objet.
    Bonjour à tous,
    Voilà cela fait plusieurs heures que j'essaie de lister les processus actifs d'une machine à l'aide de WMI, mais rien n'y fait.
    Lorsque je compile mon code, j'obtiens le message d'erreur suivant :
    Une référence à un membre non partagé requiert une référence d'objet.
    J'avoue que je suis complètement perdu et je ne vois pas ce qui ne vas pas.

    Quelqu'un peut-il m'aider s'il vous plait?
    Bien à vous.
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    Sub Button1_Click(sender As Object, e As EventArgs)
     
         Dim co As ConnectionOptions = New ConnectionOptions()
     
         Dim TestConnection As Boolean
     
          With co
                .Impersonation = System.Management.ImpersonationLevel.Impersonate
                '* Use next line for XP
                .Authentication = System.Management.AuthenticationLevel.Packet
                '* Use next line for Win prior XP
                '.Authentication = System.Management.AuthenticationLevel.Connect
            End With
     
     
     
            co.Username = "Administrateur"
            co.Password = "admin"
            'Dim theScope As New ManagementScope("\\" +DropDownList1.Text+ "\root\cimv2",co)
            Dim theScope As New ManagementScope("\\" +DropDownList1.Text+ "\root\cimv2")
            Dim theQuery As New System.Management.ObjectQuery("SELECT * From Win32_Process ")
            Dim theSearcher As New ManagementObjectSearcher(theScope, theQuery)
            'Try
     
            Dim theCollectionOfResults As ManagementObjectCollection = theSearcher.Get()
     
      For Each currentResult As ManagementObject In theCollectionOfResults
     
                    ListBox1.Text = Process.ProcessName
     
                        Next
     
                       ' Catch com_ex As System.Runtime.InteropServices.COMException When com_ex.ErrorCode = &H800706BA
                        'Response.write("Machines are unvailable:" & ipadress &"It may be off line or the firewallsettings are preventing the connection")
     
                        'Catch ua_ex As System.UnauthorizedAccessException
                       ' Response.write("The Remote PC refused the connection This is most likely due to a permissions issue.")
                        'Catch wmi_ex As Exception When wmi_ex.Exception = Management.ManagementStatus.AccessDenied
                        'Response.write("You do not have sufficient privileges on the remote PC:" & ipadress)
                        'Catch ex As Exception
                         'If IsNothing(ex.InnerException) Then
                         'Response.write("Could not get initial data")
                         'Else
                         'Response.write("Could not get initial data:" & ex.InnerException.Message)
                         'End if
                         'End Try
     
     
        End Sub

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Une erreur :

    Une référence à un membre non partagé requiert une référence d'objet.
    Est toujours une erreur de type pas d'instanciation "pas de new". Le truc c'est que pour trouver l'erreur il serait utile de connaitre la ligne de l'erreur. En utilisant un point d'arrêt, tu peux trouver cette ligne... Et par la même occasion quand la ligne est surligné jaune, et que tu places ta souris sur les variables, il y a de forte chance que pour l'un d'entre eux, VS te dise que la variable contient "Nothing"
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 158
    Points : 56
    Points
    56
    Par défaut
    Bonjour et merci d'avoir répondu
    Au fait l'erreur ce situe à la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ListBox1.Text = Process.ProcessName
    étant encore novice en.NEt je ne comprends pas ce qui coince
    Bien à vous.

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Le message d'erreur est assez parlant :
    tu essayes d'utiliser une propriété d'une classe sans l'avoir instanciée.

    Si tu appelles l'intellisense derrière Process. tu ne verras pas la propriété ProcessName.

    Il faut donc que tu instancie une variable de type Process pour récupérer le ProcessName :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim P as Process = new Process()

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 94
    Points : 95
    Points
    95
    Par défaut
    Bonjour,

    Juste par curiosité, que veux tu récupérer comme information avec Process.ProcessName, car tu n'as pas d'objet de type Process ?

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 158
    Points : 56
    Points
    56
    Par défaut
    Bonjour,
    Le problème est résolu, enfin presque . Lorsque je clique sur le bouton pour afficher les processus de la machines, j'ai le très connu message d'erreur suivant qui s'affiche:
    Le serveur RPC n'est pas disponible.
    Mon firewall windows est désactivé, les services COM DCOM RPC à distance etc sont démarrés. J'ai regardé tout ce qui pouvait être à l'orgine de ce message d'erreur mais apparemment tout est configuré normalement (enfin je pense).
    Dans le journal d'évènement il m'indique ceci:
    DCOM n'a pas pu se communiquer avec l'ordinateur DC en utilisant les protocoles configurés.
    Et c'est là que je bloque car je comprends pas pourquoi ?
    Si quelqu'un a une idée, je suis preneur .
    Bien à vous.

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/12/2014, 22h12
  2. [Débutant] Reference à membre non partage
    Par bourogaa dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/07/2011, 21h49
  3. Réponses: 2
    Dernier message: 23/12/2010, 15h50
  4. Réponses: 1
    Dernier message: 08/12/2009, 15h58
  5. Réponses: 1
    Dernier message: 26/09/2007, 17h16

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