Class

Résolu
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 - 8 août 2010 à 08:09
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 - 8 août 2010 à 16:07
bonjour,

Je m'oriente sur la création de class,
c'est ma première class et j'avoue que je suis un peut perdu,

j'aimerai créer un tableau ou plutot une listbox qui aparament est impossible voici mon code:
Option Explicit On
Imports System.Management
Imports System.IO
Imports System.Text

Public Class ClassProtecSoft
#Region "Private var"

    Private cls_Key As String
#End Region

#Region "Property"
    Public Property Key() As String
        Get
            Return cls_Key
        End Get
        Set(ByVal Key As String)
            cls_Key = Key
        End Set
    End Property

    
#End Region
    Public Sub New()

    End Sub

    Public Sub New(ByVal Key As String)
        Me.Key = Key
    End Sub
    Public Overloads Function GenerateMac() As String
        Dim AdressMac As String
        Dim mc As New System.Management.ManagementClass
        Dim mo As ManagementObject
        mc = New ManagementClass("Win32_NetworkAdapterConfiguration")
        Dim moc As ManagementObjectCollection = mc.GetInstances()

        For Each mo In moc
            If mo.Item("IPEnabled") = True Then
               
                LstBoxAdresseMac.Items.Add(mo.Item("MacAddress").ToString())
            End If
        Next
        Return AdressMac.ToString

    End Function
End Class


le problème c'est que je ne peux pas faire
dim LstBoxAdresseMac as new listbox
.
j'ai regarder ic mais à aucun moment il ont besoin de créer tableau.

Quelque serais me dire la marche a suivre ou une doc plus pousser car comme je vous les dits je suis partis hier en vacance et je n'ai pas pris mes bouquin de vb je suis deg...

7 réponses

foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
8 août 2010 à 14:56
Bonjour,

Si le but est de générer une adresse mac lors de la création d'un objet ClassProtectSoft, dans ce cas il faut bien l'initialiser dans le new.

Si vous voulez pouvoir réutiliser votre fonction GenerateMac en dehors de la class il faudra faire comme ca :
Public Class ClassProtecSoft

#Region "Private var"
    Private cls_Key As String
#End Region

#Region "Property"
    Public Property AdressMac() As String
        Get
            Return cls_Key
        End Get
        Set(ByVal AdressMac As String)
            cls_Key = AdressMac
        End Set
    End Property
#End Region

    Public Sub New()
        Me.New(GenerateMac())
    End Sub

    Public Sub New(ByVal Key As String)
        cls_Key = Key
    End Sub

    Public Shared Function GenerateMac() As String

        Dim AdressMac As String
        Dim mc As New System.Management.ManagementClass
        Dim mo As ManagementObject
        mc = New ManagementClass("Win32_NetworkAdapterConfiguration")
        Dim moc As ManagementObjectCollection = mc.GetInstances()
        Dim MesAdresses As New ArrayList
        For Each mo In moc
            If mo.Item("IPEnabled") = True Then
                MesAdresses.Add(mo.Item("MacAddress"))
            End If
        Next
        AdressMac = MesAdresses.Item(1).ToString()

        Return AdressMac.ToString

    End Function

End Class


Comme ca vous pourrez vaire ce genre de chose :
Dim obj1 As New ClassProtecSoft()

'Ou
Dim newKey As String = ClassProtecSoft.GenerateMac()
Dim obj2 As New ClassProtecSoft(newKey)
3
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
8 août 2010 à 08:48
bon j'ai reussi par contre comment appeler
GenerateMac()

dans le public sub new()
voici mon code.
Option Explicit On
Imports System.Management
Imports System.IO
Imports System.Text

Public Class ClassProtecSoft
#Region "Private var"

    Private cls_Key As String
#End Region

#Region "Property"
    Public Property Key() As String
        Get
            Return cls_Key
        End Get
        Set(ByVal Key As String)
            cls_Key = Key
        End Set
    End Property

    
#End Region
    Public Sub New()

    End Sub

    Public Sub New(ByVal Key As String)
        Me.Key = Key
    End Sub
    Public Overloads Function GenerateMac() As String
        Dim AdressMac As String
        Dim mc As New System.Management.ManagementClass
        Dim mo As ManagementObject
        mc = New ManagementClass("Win32_NetworkAdapterConfiguration")
        Dim moc As ManagementObjectCollection = mc.GetInstances()
        Dim MesAdresses As New ArrayList


        'Montableau = Array(Element1,Element2,Element3,...,Elementn) 


        For Each mo In moc
            If mo.Item("IPEnabled") = True Then
                'ListBox1.Items.Add("MAC address " & mo.Item("MacAddress").ToString())
                ' LstBoxAdresseMac.Items.Add(mo.Item("MacAddress").ToString())
                MesAdresses.Add(mo.Item("MacAddress"))
            End If
        Next
        AdressMac = MesAdresses.Item(1).ToString()
        Me.Key = AdressMac.ToString
        Return AdressMac.ToString

    End Function
End Class
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
8 août 2010 à 13:23
Mais nul part dans ton code on vois où tu cherches à appeler GenerateMac() dans la sub New...et puis quelle erreur est générée?

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
0
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
8 août 2010 à 14:16
en faite je voulais l'appeler depuis la form et sa ne fonctionne pas donc effectivement je l'appel maintenant dans le sub new .
J'aimerai que vous me dite si il y a un meilleur moyen d'utilisé la class?
Et il bien structuré?
Option Explicit On
Imports System.Management
Imports System.IO
Imports System.Text

Public Class ClassProtecSoft
#Region "Private var"

    Private cls_Key As String
#End Region

#Region "Property"
    Public Property AdressMac() As String
        Get
            Return cls_Key
        End Get
        Set(ByVal AdressMac As String)
            cls_Key = AdressMac
        End Set
    End Property

    
#End Region
    Public Sub New()
        GenerateMac()
    End Sub
    Public Sub GenerateMac()

        Dim AdressMac As String
        Dim mc As New System.Management.ManagementClass
        Dim mo As ManagementObject
        mc = New ManagementClass("Win32_NetworkAdapterConfiguration")
        Dim moc As ManagementObjectCollection = mc.GetInstances()
        Dim MesAdresses As New ArrayList
        For Each mo In moc
            If mo.Item("IPEnabled") = True Then
                MesAdresses.Add(mo.Item("MacAddress"))
            End If
        Next
        AdressMac = MesAdresses.Item(1).ToString()
        Me.AdressMac = AdressMac.ToString
    End Sub
End Class
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
8 août 2010 à 14:17
j'ai supprimer Me.AdressMac = AdressMac.ToString
car je l'utilisé avant plus maintenant
0
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
8 août 2010 à 14:32
j'ai du le remettre sinon il y avait une erreur
Me.AdressMac = AdressMac.ToString
0
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
8 août 2010 à 16:07
parfait merci et tu peux me tutoyer .
0
Rejoignez-nous