cs_scrableur
Messages postés13Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention21 août 2006
-
18 août 2006 à 14:15
cs_scrableur
Messages postés13Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention21 août 2006
-
21 août 2006 à 10:49
Bonjour
je souhaite verifier ou non la presence d'un CD dans le lecteur cdrom et renvoyer 0 ou 1 en fonction
sur une machine XP cela fonctionne bien pa contre sur une machine W2000 j'obtiens une erreur memoire .....
si je commente set colitems .... => pas de message d 'erreur
si je commente exitprocess ... => pas de message d'erreur
exitprocess marche tres bien dans d'autre script sauf quand j'utilise du WMI existe t'il une commande a lancer pour lui dire de fermer la requete WMI ou une autre facon de quitter une application VB en fournissant un code de retour different de 0
voici le code
Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Main()
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_CDROMDrive", "WQL", 48)
For Each objItem In colItems
If objItem.MediaLoaded Then ExitProcess 1
Next
Set objWMIService = Nothing
Set colItems = Nothing
cs_scrableur
Messages postés13Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention21 août 2006 18 août 2006 à 16:20
Merci mais non car ca marcherai dans ce cas la mais j'ai d'autre applis qui utilise le wmi faire un dump de la config reseau, savoir l'etat de la batterie, ..., pour l ip j'ai pas trouve d autre solution
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 18 août 2006 à 16:31
OK
Par contre rends ton code cohérent, si rien trouvé tu fermes les objets WMI et pas dans l'autre cas.
Fermons à tout coup:
Sub Main()
dim R as Long
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_CDROMDrive", "WQL", 48)
For Each objItem In colItems
If objItem.MediaLoaded Then
R = 1
Exit For
End If
Next
Set objWMIService = Nothing
Set colItems = Nothing
ExitProcess R
End Sub
Gaffe à la syntaxe, je ne VBise plus depuis des lustres.
ciao...
BruNews, MVP VC++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_scrableur
Messages postés13Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention21 août 2006 18 août 2006 à 16:35
Malheuresement ca ne marche pas non plus :(
j'ai essaye d'arreter le service wmi avant le exit ca change rien ca me donne l impression que la requete est toujours ouverte et que le =nothing sert a rien