[R] Capture du nom d'une connexion réseau active

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
weyline
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 25 mai 2011 10:37
Localisation : Gap
Status : Hors ligne

[R] Capture du nom d'une connexion réseau active

#1

Message par weyline »

Bonjour,
Je me suis mis à AutoIt lundi pour un projet qui consiste à développer un script changeant la configuration ip fixe ou dynamique des ordinateurs portable de la société selon l' antenne dans laquelle ils se trouvent, cependant pour que le scripte s' adapte à tous les PC je doit avoir une fonction qui récupère le nom de la connexion active de l' ordinateur et c' est la que je vous demande de l' aide.
J' ai trouvé plusieurs postes sur le forum qui m' ont aidé a formé mon scripte mais pour capturer le nom de la connexion active je n' ai pas trouvé de poste qui me sois réellement utile a cause de ma "noobitude" en AutoIt qui ma bloqué sur certains scripte publié sur le forum.
Donc ma question est:
Comment pourrais-je récupérer le nom d' une connexion active ?
Y a-t-il des fonctions déjà pré-existante ?

Merci d' avance pour l’intérêt porté a mon problème.
Modifié en dernier par weyline le jeu. 26 mai 2011 14:27, modifié 1 fois.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Capture du nom d'une connexion réseau active

#2

Message par ZDS »

Bonjour,

Il n'y a pas de fonction de base il me semble, mais en cherchant un peu, on trouve toujours son bonheur ^^ :
Simple recherche sur Google : http://www.autoitscript.com/forum/topic ... onnection/
Simple recherche ici même : http://www.autoitscript.fr/forum/viewto ... =21&t=1092 (d'ailleurs le lien précédent sur le forum anglophone cite ce topic de Tlem sur le forum francophone)

En y associant une fonction qui retourne la liste de toutes les connexions disponibles, c'est ensuite facile de savoir lesquelles sont actives.

A bientôt !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
weyline
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 25 mai 2011 10:37
Localisation : Gap
Status : Hors ligne

Re: [..] Capture du nom d'une connexion réseau active

#3

Message par weyline »

Bonjour,
Merci pour votre réponse, cependant je ne suis pas certain que cela correspond à mon besoin, je ne cherche pas a activé ou désactivé une connexion, seulement les listé et savoir laquelle est active pour pouvoir en récupérer son nom afin de le stocker dans une variable qui sera utilisé dans ma fonction utilisant la commande netsh.
En faite, les PC sur lesquels je souhaite utilisé mon scripte possède tous ou presque plusieurs connexions et de nom variable, d' où mon intérêt pour définir la connexion active pour en récupérer le nom.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Capture du nom d'une connexion réseau active

#4

Message par ZDS »

L'UDF qui permet de travailler sur une connexion permet aussi de connaitre son état grace à la fonction _GetNicState :

Code : Tout sélectionner

; Function that give the state of the lan connection (1 = Active  0 = Not Active).
Func _GetNicState($oLanConnection, $strEnableVerb, $strDisableVerb)
    For $Verb In $oLanConnection.Verbs
        If $Verb.Name = $strEnableVerb Then
            Return 0
        Else
            Return 1
        EndIf
    Next
EndFunc   ;==>_GetNicState
Il te faut juste t'en inspirer (et vérifier la langue), après avoir choppé le nom de toutes les connexions (là je pense que c'est une fonction de base d'AutoIt).

PS: Je trouve ce code très surprenant moi aussi, faire une boucle qui retourne une valeur dès le premier élément quelque soit la condition trouvée, c'est zarb. Mais bon ça fonctionne dans le cas d'une manip d'activation/desactivation, donc...

PS2: Regarde aussi comment l'exemple suivant est foutu :

Code : Tout sélectionner

$connect = _GetNetworkConnect()

If $connect Then
    MsgBox(64, "Connections", $connect)
Else
    MsgBox(48, "Warning", "There is no connection")
EndIf

Func _GetNetworkConnect()
    Local Const $NETWORK_ALIVE_LAN = 0x1  ;net card connection
    Local Const $NETWORK_ALIVE_WAN = 0x2  ;RAS (internet) connection
    Local Const $NETWORK_ALIVE_AOL = 0x4  ;AOL

    Local $aRet, $iResult

    $aRet = DllCall("sensapi.dll", "int", "IsNetworkAlive", "int*", 0)

    If BitAND($aRet[1], $NETWORK_ALIVE_LAN) Then $iResult &= "LAN connected" & @LF
    If BitAND($aRet[1], $NETWORK_ALIVE_WAN) Then $iResult &= "WAN connected" & @LF
    If BitAND($aRet[1], $NETWORK_ALIVE_AOL) Then $iResult &= "AOL connected" & @LF

    Return $iResult
EndFunc
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
weyline
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 25 mai 2011 10:37
Localisation : Gap
Status : Hors ligne

Re: [..] Capture du nom d'une connexion réseau active

#5

Message par weyline »

Je vous remercie, je n' avais pas bien compris.
Je vais me penché la dessus en espérant réussir a faire quelque chose :)
J' éditerais pour donné suite ...
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Capture du nom d'une connexion réseau active

#6

Message par Jerome »

Coucou,


Sinon regarde du côté des class WMI : http://msdn.microsoft.com/en-us/library ... 85%29.aspx


Il y a forcement ce que tu recherches.




Jérôme
weyline
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 25 mai 2011 10:37
Localisation : Gap
Status : Hors ligne

Re: [..] Capture du nom d'une connexion réseau active

#7

Message par weyline »

Problème résolu, je vous remercie infiniment, une grosse épine du pied enlevé.
Je commence à comprendre petit a petit AutoIt et je me rend compte que c' est un outil vraiment puissant quand on sais un minimum le maitrisé :)

edit: Je n' ai pas réussi à définir de façon "portable" le nom d' une connexion active j' ai donc pallié le problème en récupérant le nom de la première connexion utilisable via le registre et j' oblige donc l' utilisateur à utilisé la carte utilisable qui aura été trouvé par le scripte.
Répondre