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

WinDev Discussion :

problème pour changer adresse ip d'un pc [WD16]


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut problème pour changer adresse ip d'un pc
    Bonsoir à tous,
    J'ai fait pas mal de recherche mais je ne trouve pas de fonctions spécifiques pour changer l'adresse ip d'une carte réseau d'un pc car j'ai trouvé lors de mes recherches la solution de faire un fichier bat et l'ouvrir mais cette solution n'est pas du tout ce qui est recherché, pouvez-vous m'aider ? Merci

  2. #2
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bonsoir,

    Regarde peut-être du coté des API car à ma connaissance aucunes fonctions W-langage permet de modifier une adresse IP.

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 071
    Points : 9 515
    Points
    9 515
    Par défaut
    Bonjour,

    voici ce que je te propose en utilisant WMI :
    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
    51
    // Résumé : changer adresse IP 
    // Auteur : Jurassic Pork    Juillet 2011
    // Syntaxe :
    //[ <Résultat> = ] ChangeAdresseIP (<AdresseMAC>, <NouvelleAdresseIP>, <NouveauMasque>)
    //
    // Paramètres :
    //	AdresseMAC :  adresse MAC de la carte dont on veut changer l'adresse
    //	NouvelleAdresseIP :  nouvelle adresse IP de la carte dont on veut changer l'adresse
    //	NouveauMasque : nouveau masque de la carte dont on veut changer l'adresse
    // Valeur de retour :
    //  -1  carte non trouvée
    //  -2147217405 ( 80041003) problème de droit d'exécution (win 7)
    //   0 pas d'erreur
    // Exemple :
    // Info (ChangeAdresseIP("91:E6:CA:16:05:02","192.168.0.100","255.255.255.0"))
    //
    PROCEDURE ChangeAdresseIP(AdresseMAC,NouvelleAdresseIP,NouveauMasque)
    oScript est un objet Automation "MSScriptControl.ScriptControl" 
    // chaine qui représente le code VBSCRIPT
    sScriptVBS est une chaîne = [
    Function ChgAdresseIP()
    strPC  = "."
    Set objWMIService = GetObject( _
    "winmgmts:\\" & strPC & "\root\cimv2")
    Set colAdaptateursReseau = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration " _
    & "where MACAddress ='%1'")
    strAdresseIP = Array("%2")
    strMasqueSousReseau = Array("%3")
    errEnable=-1
    For Each objAdaptateurReseau in colAdaptateursReseau
    	errEnable = objAdaptateurReseau.EnableStatic( _
    	strAdresseIP, strMasqueSousReseau)
    	Next
    ChgAdresseIP =  errEnable
    End Function
    ]
    sScriptVBS= ChaîneConstruit(sScriptVBS,AdresseMAC,NouvelleAdresseIP,NouveauMasque) 
     
    QUAND EXCEPTION DANS
    	oScript>>Language("VBScript")
    	oScript>>Reset
    	oScript>>AddCode(sScriptVBS)
    	oScript>>Timeout(-1) //pas de timeout
    	RENVOYER oScript>>Run("ChgAdresseIP")
     
    FAIRE
    	Erreur("Erreur execution WMI",ExceptionInfo(errInfo))
    	ExceptionActive()
    	RENVOYER "Erreur WMI"
    FIN
    Attention sous windows 7 et certainement sous Vista il y a un problème de droits et on a un code de retour de -2147217405

    Il faut lancer son exécutable en faisant "exécuter en tant qu'administrateur" par clic droit sur l'exécutable.

    Ami calmant, J.P

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    merci à tous les deux.
    jurassic pork, je vais regarder ton code et essayer de le comprendre car il faut que je change aussi le dns, ou aussi mettre le dns et l'adresse ip en automatique, je regarderai aussi pour le problème de windows 7 pour les droits d'exécution sur l'ordinateur car je pense que l'utilisateur ne fera pas "exécuter en tant qu'administrateur".
    Je gère l'adresse ip et le dns selon le lieu où l'utilisateur est connecté.



    Pour le dns, j'ai trouvé EnableDNS, je voulais te demander si c'était cette syntaxe lorsque l'on veut juste mettre les adresses ip (il y en aura 3 au maximum)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EnableDNS("","",adresses ip dns,"")
    Pour mettre en automatique, j'ai trouvé Merci

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 071
    Points : 9 515
    Points
    9 515
    Par défaut
    Bonjour,
    voici 4 procédures qui devraient t'aider :
    1 - ActiveDHCP
    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
    51
    52
    53
    54
    55
    56
     
    // Résumé : changer adresse IP 
    // Auteur : Jurassic Pork    Juillet 2011
    // Syntaxe :
    //[ <Résultat> = ] ActiveDHCP ( [<AdresseMAC>])
    //
    // Paramètres :
    // 	AdresseMAC (valeur par défaut="") : < indiquez ici le rôle de AdresseMAC >
    // Valeur de retour :
    // 	Type indéterminé : // 	-1  carte non trouvée
    //  81 problème de droit
    //   0 pas d'erreur
    // Exemple :
    // Info (ActiveDHCP("91:E6:CA:16:05:02"))
    //
    //	AdresseMAC :  adresse MAC de la carte dont on veut changer l'adresse
     
    PROCEDURE ActiveDHCP(AdresseMAC="")
    oScript est un objet Automation "MSScriptControl.ScriptControl" 
    // chaine qui représente le code VBSCRIPT
    sScriptVBS est une chaîne = [
    Function EnableDHCP()
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    if  "%1"="" then
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
    else
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * from Win32_NetworkAdapterConfiguration " _
    	& "where MACAddress ='%1'")
    end if
    errEnable = -1
    For Each objAdaptateurReseau In colAdaptateursReseau
    	errEnable = objAdaptateurReseau.EnableDHCP()
    	Next
    EnableDHCP =  errEnable
    End Function
    ]
     
    sScriptVBS= ChaîneConstruit(sScriptVBS,AdresseMAC)
     
    QUAND EXCEPTION DANS
    	oScript>>Language("VBScript")
    	oScript>>Reset
    	oScript>>AddCode(sScriptVBS)
    	oScript>>Timeout(-1) //pas de timeout
    	RENVOYER oScript>>Run("EnableDHCP")
     
    FAIRE
    	Erreur("Erreur execution WMI",ExceptionInfo(errInfo))
    	ExceptionActive()
    	RENVOYER "Erreur WMI"
    FIN
    2 - ChangeAdresseIP
    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
    51
    52
    53
    54
    55
    56
    // Résumé : changer adresse IP 
    // Auteur : Jurassic Pork    Juillet 2011
    // Syntaxe :
    //[ <Résultat> = ] ChangeAdresseIP (<AdresseMAC>, <NouvelleAdresseIP>, <NouveauMasque>)
    //
    // Paramètres :
    //	AdresseMAC :  adresse MAC de la carte dont on veut changer l'adresse
    //	NouvelleAdresseIP :  nouvelle adresse IP de la carte dont on veut changer l'adresse
    //	NouveauMasque : nouveau masque de la carte dont on veut changer l'adresse
    // Valeur de retour :
    // 	-1  carte non trouvée
    //  -2147217405 ( 80041003) problème de droit d'exécution (win 7)
    //   0 pas d'erreur
    // Exemple :
    // Info (ChangeAdresseIP("91:E6:CA:16:05:02","192.168.0.100","255.255.255.0"))
    //
    PROCEDURE ChangeAdresseIP(AdresseMAC,NouvelleAdresseIP,NouveauMasque)
    oScript est un objet Automation "MSScriptControl.ScriptControl" 
    // chaine qui représente le code VBSCRIPT
    sScriptVBS est une chaîne = [
    Function ChgAdresseIP()
    strPC  = "."
    Set objWMIService = GetObject( _
    "winmgmts:"  & "{impersonationLevel=impersonate}!\\" & strPC & "\root\cimv2")
    if  "%1"="" then
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
    else
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * from Win32_NetworkAdapterConfiguration " _
    	& "where MACAddress ='%1'")
    end if
    strAdresseIP = Array("%2")
    strMasqueSousReseau = Array("%3")
    errEnable=-1
    For Each objAdaptateurReseau in colAdaptateursReseau
    	errEnable = objAdaptateurReseau.EnableStatic( _
    	strAdresseIP, strMasqueSousReseau)
    	Next
    ChgAdresseIP =  errEnable
    End Function
    ]
    sScriptVBS= ChaîneConstruit(sScriptVBS,AdresseMAC,NouvelleAdresseIP,NouveauMasque) 
     
    QUAND EXCEPTION DANS
    	oScript>>Language("VBScript")
    	oScript>>Reset
    	oScript>>AddCode(sScriptVBS)
    	oScript>>Timeout(-1) //pas de timeout
    	RENVOYER oScript>>Run("ChgAdresseIP")
     
    FAIRE
    	Erreur("Erreur execution WMI",ExceptionInfo(errInfo))
    	ExceptionActive()
    	RENVOYER "Erreur WMI"
    FIN
    3 - ChgServeursDNS
    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
    51
    52
    53
    54
    55
    // Résumé : changer serveurs DNS statiques
    // Auteur : Jurassic Pork    Juillet 2011
    // Syntaxe :
    //[ <Résultat> = ] ChgServeursDNS ( [<AdresseMAC> [, <DNS1> [, <DNS2>]]])
    //
    // Paramètres :
    //	AdresseMAC (valeur par défaut="") :  adresse MAC de la carte dont on veut changer l'adresse
    //	DNS1 (valeur par défaut="") :  adresse DNS principal
    //	DNS2 (valeur par défaut="") :  adresse DNS auxiliaire
    // Valeur de retour :
    // 	-1  carte non trouvée
    //  81 problème de droit 
    //   0 pas d'erreur
    // Exemple :
    // Info (ChgServeursDNS("91:E6:CA:16:05:02","192.168.0.100","255.255.255.0"))
    //
    PROCEDURE ChgServeursDNS(AdresseMAC="",DNS1="",DNS2="")
    oScript est un objet Automation "MSScriptControl.ScriptControl" 
    // chaine qui représente le code VBSCRIPT
    sScriptVBS est une chaîne = [
    Function ChgDNS()
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    if  "%1"="" then
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
    else
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * from Win32_NetworkAdapterConfiguration " _
    	& "where MACAddress ='%1'")
    end if
    errEnable = -1
    For Each objAdaptateurReseau in colAdaptateursReseau
    	arrDNSServers = Array("%2","%3")
    	errEnable = objAdaptateurReseau.SetDNSServerSearchOrder(arrDNSServers)
    	Next
    ChgDNS =  errEnable
    End Function
    ]
    sScriptVBS= ChaîneConstruit(sScriptVBS,AdresseMAC,DNS1,DNS2) 
     
    QUAND EXCEPTION DANS
    	oScript>>Language("VBScript")
    	oScript>>Reset
    	oScript>>AddCode(sScriptVBS)
    	oScript>>Timeout(-1) //pas de timeout
    	RENVOYER oScript>>Run("ChgDNS")
     
    FAIRE
    	Erreur("Erreur execution WMI",ExceptionInfo(errInfo))
    	ExceptionActive()
    	RENVOYER "Erreur WMI"
    FIN
    4 - DNSDynamique :
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    // Résumé : DNS dynamique
    // Auteur : Jurassic Pork    Juillet 2011
    // Syntaxe :
    //[ <Résultat> = ] DNSDynamique ( [<AdresseMAC>])
    //
    // Paramètres :
    //	AdresseMAC (valeur par défaut="") :  adresse MAC de la carte dont on veut changer l'adresse
    // Valeur de retour :
    // 	Type indéterminé : // 	-1  carte non trouvée
    //  81 problème de droit
    //   0 pas d'erreur
    // Exemple :
    // Info (DNSDynamique("91:E6:CA:16:05:02")
    //
    //	DNS1 :  nouvelle adresse IP de la carte dont on veut changer l'adresse
    //	DNS2 : nouveau masque de la carte dont on veut changer l'adresse
    PROCEDURE DNSDynamique(AdresseMAC="")
    oScript est un objet Automation "MSScriptControl.ScriptControl" 
    // chaine qui représente le code VBSCRIPT
    sScriptVBS est une chaîne = [
    Function DNSDynamique()
    Const FULL_DNS_REGISTRATION = True
    Const DOMAIN_DNS_REGISTRATION = False
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    if  "%1"="" then
    Set colAdaptateursReseau = objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
    else
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * from Win32_NetworkAdapterConfiguration " _
    	& "where MACAddress ='%1'")
    end if
     
    errEnable = -1
    For Each objAdaptateurReseau in colAdaptateursReseau
    	arrDNSServers =  Null
    	objAdaptateurReseau.SetDNSServerSearchOrder(arrDNSServers)
    	errEnable = objAdaptateurReseau.SetDynamicDNSRegistration ( True,False )
    	Next
    DNSDynamique =  errEnable
    End Function
    ]
    sScriptVBS= ChaîneConstruit(sScriptVBS,AdresseMAC) 
     
    QUAND EXCEPTION DANS
    	oScript>>Language("VBScript")
    	oScript>>Reset
    	oScript>>AddCode(sScriptVBS)
    	oScript>>Timeout(-1) //pas de timeout
    	RENVOYER oScript>>Run("DNSDynamique")
     
    FAIRE
    	Erreur("Erreur execution WMI",ExceptionInfo(errInfo))
    	ExceptionActive()
    	RENVOYER "Erreur WMI"
    FIN
    Sous Windows 7 pour toujours exécuter en tant qu'administrateur un exécutable il faut cocher "exécuter ce programme en tant qu'administrateur" dans niveau de privilège de l'onglet compatibilité des propriétés du fichier.

    Il y aura quand même une fenêtre de sécurité qui apparaîtra à l'exécution mais c'est pour rappeler qu'il y a danger. En effet changer les paramètres du réseau de façon inadéquate peut conduire à un réseau complétement inopérant. Il faut que ce soit un administrateur réseau qui utilise ce programme.

    Ami calmant, J.P ;-)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    Merci, pour récupérer l'adresse mac du pc, j'ai trouvé cela
    Je voulais te demander s'il y avait quelque chose pour savoir si c'est la carte éthernet ou wifi que je récupère l'adresse mac car je voudrais que mon programme récupère les deux mais qu'on sache quelle carte réseau que j'enregistre dans la bdd, je vais donner le choix à l'utilisateur de changer soit le wifi ou l'ethernet. Si tu veux lorsque j'enregistre dans la bdd, je précise si c'est la carte wifi ou la carte ethernet.

    J'ai un projet en deux parties, une pour entrer toutes les informations (adresse ip, dns, passerelle, adresse mac...) qui sont stocker dans une bdd, et l'autre pour changer toutes les informations de la carte réseau en récupérant les informations dans la bdd et en utilisant les procédures que tu m'a données.

    P.S : Pour changer la passerelle, je dois ajouter cela dans la procédure ChangeAdresseIP ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    strGateway = Array("172.16.0.1")
    strGatewayMetric = Array(1)
    ...
    for each ....
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    ...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    J'ai changé la procédure ChangeAdresseIP, je voulais te demander si j'ai rien oublié car j'ai un doute au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChgAdresseIP =  errEnable
    Si j'ai bien compris le code, je pense qu'il faut aussi ajouter aussi errGateways pour la passerelle.
    Voici le code modifié :
    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
     
    PROCEDURE ChangeAdresseIP(AdresseMAC,NouvelleAdresseIP,NouveauMasque,NouvellePasserelle)
    oScript est un objet Automation "MSScriptControl.ScriptControl" 
    // chaine qui représente le code VBSCRIPT
    sScriptVBS est une chaîne = [
    Function ChgAdresseIP()
    strPC  = "."
    Set objWMIService = GetObject( _
    "winmgmts:"  & "{impersonationLevel=impersonate}!\\" & strPC & "\root\cimv2")
    if  "%1"="" then
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
    else
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * from Win32_NetworkAdapterConfiguration " _
    	& "where MACAddress ='%1'")
    end if
    strAdresseIP = Array("%2")
    strMasqueSousReseau = Array("%3")
    strGateway = Array("%4")
    strGatewayMetric = Array(1)
    errEnable=-1
    For Each objAdaptateurReseau in colAdaptateursReseau
    	errEnable = objAdaptateurReseau.EnableStatic( _
    	strAdresseIP, strMasqueSousReseau)
    	errGateways = objAdaptateurReseau.SetGateways(strGateway, strGatewaymetric)
    	Next
    	ChgAdresseIP =  errEnable
    End Function
    ]
    sScriptVBS= ChaîneConstruit(sScriptVBS,AdresseMAC,NouvelleAdresseIP,NouveauMasque,NouvellePasserelle) 
     
    QUAND EXCEPTION DANS
    	oScript>>Language("VBScript")
    	oScript>>Reset
    	oScript>>AddCode(sScriptVBS)
    	oScript>>Timeout(-1) //pas de timeout
    	RENVOYER oScript>>Run("ChgAdresseIP")
     
    FAIRE
    	Erreur("Erreur execution WMI",ExceptionInfo(errInfo))
    	ExceptionActive()
    	RENVOYER "Erreur WMI"
    FIN
    P.S : Je recherche toujours pour l'adresse mac des cartes réseaux pour savoir si l'adresse mac récupérée est celle de la carte éthernet ou celle de la carte wifi

  8. #8
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 071
    Points : 9 515
    Points
    9 515
    Par défaut B
    Bonjour ,

    pour le code de retour tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChgAdresseIP =  errEnable + errGateWays
    si le code de retour est différent de 0 c'est qu'il y a eu une erreur

    et pour avoir des renseignements sur les cartes réseaux par rapport à l'adresse MAC tu peux tenter une procédure du style :
    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
    PROCEDURE RécupèreAdresseMAC()
    oScript est un objet Automation "MSScriptControl.ScriptControl" 
    // chaine qui représente le code VBSCRIPT
    sScriptVBS est une chaîne = [
    Function RecupAdressesMAC()
    strPC  = "."
    Set objWMIService = GetObject( _
    "winmgmts:"  & "{impersonationLevel=impersonate}!\\" & strPC & "\root\cimv2")
    	Set colAdaptateursReseau = objWMIService.ExecQuery _
    	("Select * From Win32_NetworkAdapter Where AdapterType = 'Ethernet 802.3'")
    resultat = ""
    For Each objAdaptateurReseau in colAdaptateursReseau
    	resultat  =  resultat & objAdaptateurReseau.MACAddress &  Chr(9) & objAdaptateurReseau.Description  & Chr(13) & Chr(10)
    	Next
    RecupAdressesMAC =  resultat
    End Function
    ]
     
    QUAND EXCEPTION DANS
    	oScript>>Language("VBScript")
    	oScript>>Reset
    	oScript>>AddCode(sScriptVBS)
    	oScript>>Timeout(-1) //pas de timeout
    	RENVOYER oScript>>Run("RecupAdressesMAC")
     
    FAIRE
    	Erreur("Erreur execution WMI",ExceptionInfo(errInfo))
    	ExceptionActive()
    	RENVOYER "Erreur WMI"
    FIN
    tu récupères l'adresse MAC des cartes réseaux avec la description de la carte. chr(9) -> TAB Chr(13) & Chr(10) -> RC

    Ami calmant, J.P

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    Merci, j'ai divisé la procédure en deux, j'en ai fait une pour mettre juste la description dans une liste, et l'autre pour récupérer l'adresse mac selon la description qui a été sélectionnée dans la liste mais la procédure récupèreadresseip avec la description en paramètre ne fonctionne pas, voici le code :
    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
     
    PROCEDURE RécupèreAdresseMAC(unedescription)
    oScript est un objet Automation "MSScriptControl.ScriptControl" 
    // chaine qui représente le code VBSCRIPT
    sScriptVBS est une chaîne = [
    Function RecupAdressesMAC()
    strPC  = "."
    Set objWMIService = GetObject( _
    "winmgmts:"  & "{impersonationLevel=impersonate}!\\" & strPC & "\root\cimv2")
    Set colAdaptateursReseau = objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapter Where Description = '%1'")
    resultat = ""
    For Each objAdaptateurReseau in colAdaptateursReseau
    	resultat  =  resultat & objAdaptateurReseau.MACAddress  & Chr(13) & Chr(10)
    	Next
    	RecupAdressesMAC =  resultat
    End Function
    ]
     
    QUAND EXCEPTION DANS
    	oScript>>Language("VBScript")
    	oScript>>Reset
    	oScript>>AddCode(sScriptVBS)
    	oScript>>Timeout(-1) //pas de timeout
    	RENVOYER oScript>>Run("RecupAdressesMAC")
     
    FAIRE
    	Erreur("Erreur execution WMI",ExceptionInfo(errInfo))
    	ExceptionActive()
    	RENVOYER "Erreur WMI"
    FIN

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    Bonjour, j'ai trouvé mon erreur dans la procédure, j'avais oublié de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sScriptVBS= ChaîneConstruit(sScriptVBS,unedescription)
    Merci pour ton aide
    J'ai quelque chose à te demander, il y a quelque chose à installer sur un poste client (sous windows 7 64 byt) lorsque je fais un exécutable 64 byt car j'ai cette erreur lors de l'exécution du programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L'objet automation 'MSScriptControl.ScriptControl' n'est pas installé sur votre système.
    J'ai essayé avec un exécutable 32 et cela fonctionne

  11. #11
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 071
    Points : 9 515
    Points
    9 515
    Par défaut
    Bonjour,

    MSScript.ocx n'existe pas en version 64 bits donc tu ne peux pas utiliser MSScriptControl.ScriptControl dans une application 64 bits.

    Ami calmant, J.P

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    Merci de ta réponse, je vais juste faire un exécutable en 32 bit.

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

Discussions similaires

  1. Problème pour changer le format des données
    Par Lize50 dans le forum SAS Base
    Réponses: 10
    Dernier message: 20/05/2008, 14h51
  2. DateTime :: problème pour changer une heure
    Par olivier1209 dans le forum C#
    Réponses: 4
    Dernier message: 28/01/2008, 09h42
  3. [vb2005] problème pour changer de tabpage
    Par marc_dd dans le forum Windows Forms
    Réponses: 1
    Dernier message: 13/10/2006, 15h11
  4. Problème pour changer les cartes d'un CardLayout
    Par vallica dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 29/11/2005, 14h38
  5. Problème pour changer la forme du curseur
    Par Amara dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 18/05/2005, 11h37

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