Encore pour une autre boite je ne m'arrête plus :p
J'ai cherché à savoir la manière de procéder pour détecter le fait qu'un CD ait bien été inséré dans un lecteur cible (pas le fait de vérifier quel CD était dans le lecteur, mais bien de détecter qu'il y un CD dans le lecteur), et rien à faire ... j'ai tenté plusieurs méthodes, sans succès ... une idée ?
Modifié en dernier par GhostLine le lun. 29 mars 2010 14:33, modifié 1 fois.
Je me suis creusé longtemps sur ce problème et j'ai pas encore trouvé de solution et ce même avec "DriveGetDrive("CDROM")" et "DriveStatus ("path")" que proposes Davyly.
Si tu trouves, je suis preneur
Amicalement.
BM
Modifié en dernier par scorp84 le ven. 26 mars 2010 15:42, modifié 1 fois.
Dim $lettre[7] = ["","A", "B", "C", "D", "E", "F"]
For $i=1 to 6
$lecteur=$lettre[$i] & ":"
$type=DriveGetType ($lecteur)
If $type=="CDROM" Then
$taille=DirGetSize($lecteur)
$etat=DriveStatus ($lecteur)
MsgBox(0,"taille",$taille)
MsgBox(0,"$etat",$etat)
If ($etat<>"NOTREADY" Or $taille==-1) Then
CDTray($lecteur, "open")
Else
CDTray($lecteur, "close")
EndIf
EndIf
Next
Si d'autres ont mieux ou veulent améliorer le code, faites vous plaisir
Testez Drivestatus, et vous verrez ... nan, sérieusement, ça ne fonctionne pas ^^ j'ai tenté une petite boucle if, et pour une raison que j'ignore, si je fais un truc du genre
if drivestatus("f:\") <> "NOTREADY" then
la condition est validée de manière automatique, que le CD soit "plein" ou pas ..
Je viens d'écrire rapidement ce petit bout de code, uniquement dans le but de tester la présence d'un CD dans le lecteur et cela semble fonctionner ...
$cd = DriveGetDrive("CDROM")
If @error Then
MsgBox(16, "Erreur", "Aucun lecteur de type CDROm présent sur ce poste.")
Exit
EndIf
While 1
For $i = 1 to $cd[0]
If DriveStatus($cd[$i]) = "READY" Then MsgBox(64, "Information", "Un CD est présent dans le lecteur CDROm " & $cd[$i])
Next
Sleep("200")
WEnd
Effectivement, ca boucle mais comme je le disais, c'était uniquement pour tester la présence d'un CD. La boucle était là pour que GhostLine mette un CD, éjecte le CD, le remette pour qu'il vérifie le fonctionnement du script. A partir de là, tout est permis, l'appel d'une fonction, vérification par exemple, etc etc ... Enfin suivant ses besoins. A lui d'adapter maintenant.