[R] Intercepter/Désactiver un message d'erreur

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
plop22
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 08 févr. 2012 18:53
Status : Hors ligne

[R] Intercepter/Désactiver un message d'erreur

#1

Message par plop22 »

Bien le bonjour !

Ayant cherché jusque dans les recoins les plus obscures du net, mais sans résultats, je m’adresse à vous en espérant que vous saurez me répondre,

En effet je cherche à éviter l'affichage d'une msgbox d'erreur que l'on obtient en vérifiant si un fichier existe pour un périphérique usb "vide" (comme un téléphone qui serait branché au pc mais sans avoir activé le stockage de masse usb, par exemple)


Dans mon cas;

Code : Tout sélectionner


If FileExists(LecteurVide & "\Fichier") Then

 
J'obtiens une msgbox qui dit
"Il n'y as pas de disque dans le lecteur. Insérez un disque dans le lecteur \Device\Harddisk1\DR47" Le titre de la msgbox correspond au nom de mon programme: "Monprogramme.exe"

(Dans le cas où je branche juste mon téléphone sans avoir activé le stockage de masse usb)


Ma question est la suivante, comment éviter que cette fenêtre explose au visage du pauvre petit utilisateur de mon script?

Je vous remercie, pour votre temps, et pour votre aide !
Modifié en dernier par plop22 le mer. 06 mars 2013 11:57, modifié 1 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..]Intercepter/désactiver un message d'erreur

#2

Message par TommyDDR »

Je n'ai pas eu le temps de tester (pas de lecteur "sans disque" de disponible) mais cela devrait fonctionner.

(Remplacez A:\ par votre lecteur)

Code : Tout sélectionner

If(_IsValidLecteur("A:\")) Then
    If(FileExists("A:\Fichier.txt"))Then
        MsgBox(0, "", "File Exist")
    Else
        MsgBox(0, "", "File not exist")
    EndIf
Else
    MsgBox(0, "", "Drive not ready")
EndIf

Func _IsValidLecteur($Drive)
    Local $valid = True
    Local $status = DriveStatus($Drive)
    If($status = "NOTREADY") Then
        $valid = False
    EndIf
    Return $valid
EndFunc
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
plop22
Niveau 4
Niveau 4
Messages : 69
Enregistré le : mer. 08 févr. 2012 18:53
Status : Hors ligne

Re: [..]Intercepter/désactiver un message d'erreur

#3

Message par plop22 »

J'ai adapté ta solution à mon script et ça fonctionne parfaitement!

merci ! :mrgreen:



(Pour ceux qui lirait ce topic en espérant y trouver une réponse, j'ai simplement ajouté comme condition que le périphérique usb soit "Ready", c'est à dire qui contient quelque chose, ce qui élimine directement les clées vides, ou ayant le stockage de masse usb désactivé)

Code : Tout sélectionner

If (DriveStatus(lecteur) = "READY") And FileExists(lecteur & "\fichier") then
...
 
En conclusion, je dirais que j'ai fait l'erreur de vouloir régler un problème en aval, alors qu'il est bien plus simple et efficace de le prévenir en amont ! :wink:
Répondre