ré-écrire une variable dans une combobox

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Heaz117
Niveau 1
Niveau 1
Messages : 2
Enregistré le : jeu. 10 sept. 2020 08:55
Status : Hors ligne

ré-écrire une variable dans une combobox

#1

Message par Heaz117 »

Bonjour,

j'ai créer une petite appli qui change automatiquement l'adresse IP d'une carte Ethernet (nom de la carte a rentrée dans l'input) avec 3 _GUICtrlIpAddress_Create qui sont sauvegarder à chaque exécution dans un .ini jusque la tous fonctionne.

suite a une demande d'amélioration d'un de mes collègues, il ma demander de créer une combobox avec dedans la liste des noms de différentes adresse IP ce que je souhaiterais faire c'est rendre possible la modification d'un nom et de sauvegarder ce nom avec un bouton (cela fonctionne) et réactualiser la liste des noms des que l'écrire du nom dans le .ini est fini (cela ne fonctionne pas). par contre à chaque redémarrage du programme il actualise bien les noms renommé.

que dois-je faire pour solutionné mon problème?

j'ai ajouter une hotkeypressed pour ma fonction de rechargement de la combo "{HOME}"

vous trouverez ci-joint code non terminé avec le soucis (le code fini avec le soucis est sur mon pc de boulot)ainsi que le build fini du programme avec toutes les fonctionnalités actives et le soucis de noms non actualisé.
Changeur d'IP automatique V2-1.zip
(555.27 Kio) Téléchargé 121 fois
autre question j'ai pu constaté que chaque PC a une définition déférente de ses networks (pour mon pc perso c'est @ipAdress1 pour mon pc boulot c'est @IPAdress3 qui correspond à ma carte Ethernet) comment remonter l'adresse IP d'une carte plutôt que d'utiliser le @ipadress qui n'est pas le même à chaque PC ?
► Afficher le texte
Merci d'avance pour vos réponses !
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: ré-écrire une variable dans une combobox

#2

Message par jl56 »

Bonjour,

Depuis des années j'utilise cette fonction pour retrouver l'adresse IP
De mémoire ( c'est vieux) je test si la carte a une passerelle de paramétrée et je récupère l'IP , le masque, le dns1 et la passerelle
Func _Adresseip()
   $OBJWMISERVICE = ObjGet("winmgmts:\root\cimv2")
   $colNetCards = $OBJWMISERVICE.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")
;~ $colNetCards = $OBJWMISERVICE.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

;~    $treeview = GUICtrlCreateTreeView(10, 10, $guiWidth - 20, $guiHeight - 60, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
   Dim $subItemCount = 11
   Dim $MainItemArray[$colNetCards.count][$subItemCount] ;set how many treeviewitems to create
   $i = 0
   For $objNetCard In $colNetCards
      If StringInStr($objNetCard.macaddress, ":") Then
         If $objNetCard.DHCPEnabled = 0 Then
            $x = 'NON'
         Else
            $x = 'OUI'
         EndIf
;~          $MainItemArray[$i][3] = GUICtrlCreateTreeViewItem('DHCP Valide = ' & $x, $MainItemArray[$i][0])
         $Y = $objNetCard.IPAddress
         If Not IsArray($Y) Then Dim $Y[1]
         $x = ''
         For $k = 0 To UBound($Y) - 1
            $x = $x & $Y[$k] & '  '
         Next
;~          $MainItemArray[$i][4] = GUICtrlCreateTreeViewItem('IP Address(s) = ' & $x, $MainItemArray[$i][0])
         $Y = $objNetCard.IPSubnet
         If Not IsArray($Y) Then Dim $Y[1]
         $x = ''
         For $k = 0 To UBound($Y) - 1
            $x = $x & $Y[$k] & '  '
         Next
;~          $MainItemArray[$i][5] = GUICtrlCreateTreeViewItem('Masque = ' & $x, $MainItemArray[$i][0])
         $Y = $objNetCard.DefaultIPGateway
         If Not IsArray($Y) Then Dim $Y[1]
         $x = ''
         For $k = 0 To UBound($Y) - 1
            $x = $x & $Y[$k] & '  '
         Next
;~          $MainItemArray[$i][6] = GUICtrlCreateTreeViewItem('PASSERELLE  = ' & $x, $MainItemArray[$i][0])
         If StringInStr($x, ".") Then
            $mac = $objNetCard.macaddress
            $carteavecpasserelle = $objNetCard.description
            $carteitem = $MainItemArray[$i][0]
;~             $carte_passerelle =$objNetCard.Caption
         EndIf

;~          $MainItemArray[$i][7] = GUICtrlCreateTreeViewItem('DHCP Server = ' & $objNetCard.DHCPServer, $MainItemArray[$i][0])
         $Y = $objNetCard.DNSServerSearchOrder
         $x = ''
         For $k = 0 To UBound($Y) - 1
            $x = $x & $Y[$k] & '  '
         Next
;~       MsgBox($avant_plan,'dns',$x)
;~          $MainItemArray[$i][8] = GUICtrlCreateTreeViewItem('DNS Servers = ' & $x, $MainItemArray[$i][0])
         $x = $objNetCard.DHCPLeaseObtained
         If $x <> '' Then $x = StringMid($x, 1, 4) & '/' & StringMid($x, 5, 2) & '/' & StringMid($x, 7, 2) & ' at ' & StringMid($x, 9, 2) & ':' & StringMid($x, 11, 2) & ':' & StringMid($x, 13, 2)
;~          $MainItemArray[$i][9] = GUICtrlCreateTreeViewItem('Bail DHCP obtenus = ' & $x, $MainItemArray[$i][0])
         $x = $objNetCard.DHCPLeaseExpires
         If $x <> '' Then $x = StringMid($x, 1, 4) & '/' & StringMid($x, 5, 2) & '/' & StringMid($x, 7, 2) & ' at ' & StringMid($x, 9, 2) & ':' & StringMid($x, 11, 2) & ':' & StringMid($x, 13, 2)
;~          $MainItemArray[$i][10] = GUICtrlCreateTreeViewItem('Bail DHCP expire = ' & $x, $MainItemArray[$i][0])
         $i = $i + 1
      EndIf
   Next
   For $objNetCard In $colNetCards
      If $objNetCard.description = $carteavecpasserelle Then
         ;show static gui
         ;fill the ip box's
         $x = $objNetCard.IPAddress
         $Y = $objNetCard.IPAddress
         If Not IsArray($Y) Then Dim $Y[1]
         $x = ''
         For $k = 0 To UBound($Y) - 1
            $x = $x & $Y[$k] & '  '
         Next
         $adrip = $x
         If StringInStr($adrip, " ") Then
            $array_adrip = StringSplit($adrip, " ")
            $adrip = $array_adrip[1]
            MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '$adrip' & @CRLF & @CRLF & 'Return:' & @CRLF & $adrip) ;### Debug MSGBOX
         EndIf
         $x = $objNetCard.IPSubnet
         If Not IsArray($x) Then Dim $x[1]
         $masque = $x[0]
         MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '$masque' & @CRLF & @CRLF & 'Return:' & @CRLF & $masque) ;### Debug MSGBOX
;~                     _GUICtrlIpAddress_Set($Subnetinput,$x[0])
         $x = $objNetCard.DefaultIPGateway
         If Not IsArray($x) Then Dim $x[1]
         $pass = $x[0]
         MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '$pass' & @CRLF & @CRLF & 'Return:' & @CRLF & $pass) ;### Debug MSGBOX
;~                     _GUICtrlIpAddress_Set($Gatewayinput,$x[0])
         If $objNetCard.DHCPEnabled = 0 Then
            $dhcp = 'NON'
         Else
            $dhcp = 'OUI'
         EndIf
         $carte = $objNetCard.description
         $Y = $objNetCard.DNSServerSearchOrder
         $x = ''
         For $k = 0 To UBound($Y) - 1
            If $k <> UBound($Y) - 1 Then
               $x = $x & $Y[$k] & ','
;~                               MsgBox($avant_plan,"x",$x)
            Else
               $x = $x & $Y[$k] ;
            EndIf
         Next
         $dns1 = $x
         ExitLoop
      EndIf
   Next
EndFunc   ;==>_Adresseip
Si cela peux vous aider

sinon regardez udf de jguinch ça peut vous aider dans votre script
https://www.autoitscript.fr/forum/viewt ... u3#p103578


A+ JL56
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: ré-écrire une variable dans une combobox

#3

Message par jguinch »

Voir plutôt ici (dernière version disponible)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Heaz117
Niveau 1
Niveau 1
Messages : 2
Enregistré le : jeu. 10 sept. 2020 08:55
Status : Hors ligne

Re: ré-écrire une variable dans une combobox

#4

Message par Heaz117 »

Bonjour et merci de vos réponses merci JL56 pour ta réponse mais je ne comprend vraiment rien a ton script.

UDF n'est pas mal après je n'ai pas encore pris le temps de regarder avez vous une idées de solution pour mon problème de combobox ?
il ma demander de créer une combobox avec dedans la liste des noms de différentes adresse IP ce que je souhaiterais faire c'est rendre possible la modification d'un nom et de sauvegarder ce nom avec un bouton (cela fonctionne) et réactualiser la liste des noms des que l'écrire du nom dans le .ini est fini (cela ne fonctionne pas). par contre à chaque redémarrage du programme il actualise bien les noms renommé.
merci d'avance

Heaz117
Répondre