cs_nico1610
Messages postés395Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention19 juin 2009
-
31 juil. 2007 à 14:22
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
1 août 2007 à 04:45
Salut a tous, voila mon problème :
J'utilise les WMI pour la configuration du protocole Réseau de mon ordinateur.
Pour cella j'ai une fonction
SetIp(Ip as String, MacAdress as String)
Qui se charge en fonction de l'adress mac de donner une adress IP a la bonne carte réseau.
Mais une fois sur deux la fonction marche a merveille (changement de l'ip, et aucune fige)
Mais de temps en temps (lors de mes test c'est du 50/50) le changement d'ip ce fait puis l'aplication se fige !
Il faut savoir que pendant le changement d'adresse IP quand tout va bien, l'application se fige aussi (elle attent que le WMI est fini pour reprendre la main)
J'en ai donc déduis que de temps en temps, le WMI ne redonais pas la main a mon application d'où ma question suivante :
exsite t'il un moyen de créer un système de Timeout sur le WMI, histoire de lui laisser 30 secondes, puis si il a toujour pas re-donner la main que je lui force la chose.
Voila, je pense que mon problème est assez bien expliqué, la fonction SetIp fait ceci :
<hr size="2" width="100%" />Public Function SetIp(Ip as String, MacAdress as String)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE AND MACAddress = '" & MacAdress & "'")
strIPAddress = Array(IP)
For Each objNetAdapter In colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, Array("255.255.0.0"))
If errEnable = 0 Then
ChangeIP = True
Else
ChangeIP = False
End If
Next
End Function
<hr size="2" width="100%" />
Merci d'avance pour vos réponces.
Ergo5 (Alias Nico1610)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 31 juil. 2007 à 17:49
salut,
WMI est SYNCHRONE
doevents n'y changera rien
à toi de charger WMI avant (une requête dont tu ne récupère pas le résultat) durant le splash par exemple, pour qu'il soit plus rapide ensuite.
sinon tes variables sont déclarée où (le sont-elles)? tu les détruis?
pas très bon de remplir une collection qui n'est pas vide. çà par contre çà peut être une raison de plantage.
un me.enabled=false puis true avant/après l'appel de la ..... fonction, çà peut être bon
un fonction qui ne renvoie rien?
un changeIP booléen non déclaré?
bon courage
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_nico1610
Messages postés395Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention19 juin 20091 31 juil. 2007 à 20:36
Si j'ai bien tout compris, le objWMIService je devrai en avoir qu'un pour tout mon projet ? En le déclarant en Public dans un module par exemple. (ou en Private dans ma From)
(J'y avait pas pensé, je suis con ! lol)
Et donc pour le décharger on est d'accord c'est :
Set objWMIService = Nothing
Sinon je ne vois pas comment ca va résoudre mon bug (enfin peut être), mais la question reste toujour : Comment faire pour mettre un timeout sur le WMI histoire de reprendre le controle de l'application et cas de problème ?
Bien sur vu que je créait a chaque fois des object WMI sans les détruires il y avait peu être une saturation ^^ .
Je vais suivre tes conseils des plus éclairé et je te tiens au courant, en tout cas tu as mis le doit sur une erreur de ma part qui pourait bien expliquer la chose !
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 31 juil. 2007 à 21:19
en dim dans la fonction qui n'en est pas une
donc çà veut dire qu'il n'y a pas de "option explicit", faudrait y penser
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp