Page 1 sur 1
[R] Vérification fonctionnement lecteur réseaux
Posté : mer. 26 nov. 2014 09:58
par jcaspar
B
onjour à tous !
J'ai un petit script qui teste le fonctionnement des lecteurs réseaux et les réinitialise en cas de besoin
je souhaiterais qu'au lieu d'avoir trois msgbox distinctes avoir une boite
regroupant toutes les informations... puis regrouper les infos dans une msgbox
ou devrais je passer par une gui pour y parvenir ? Peut être avez vous des idées pour améliorer le script ?
En vous remerciant pour vos conseils
Jean-Marc
► Afficher le texte
Code : Tout sélectionner
local $p = DriveMapAdd("P:", "\\xxxx\commun$")
local $b = DriveMapAdd("B:", "\\xxx\poles$")
local $h = DriveMapAdd("H:", "\\xxx\utilisateurs$")
msgbox(64,"Statut du lecteur P",DriveStatus("p:\"))
msgbox(64,"Statut du lecteur B",DriveStatus("b:\"))
msgbox(64,"Statut du lecteur H",DriveStatus("h:\"))
select
case $p = 1
msgbox(64, " Creation lecteur p", " Creation lecteur P -> OK ")
case $p = 0
_erreur()
case $b = 1
msgbox(64, " Creation lecteur b", " Creation lecteur B -> OK ")
case $b = 0
_erreur
case $h = 1
msgbox(64, " Creation lecteur h", " Creation lecteur H -> OK ")
case $h = 0
_erreur()
case $x = 1
msgbox(64, " Creation lecteur x", " Creation lecteur X -> OK ")
case $x=0
_erreur()
EndSelect
;~ msgbox (64,"valleur retour",@exitcode)
;~ msgbox(64," Erreur Creation Lecteur "," Lecteur crée normalement")
;~ endif
Func _erreur()
switch @error
case 0
;~ msgbox(64, "Erreur creation lecteur", "Nouveau n'a pu être crée car déja créé")
case 1
msgbox(64, "Erreur creation lecteur", "Non défini")
case 2
msgbox(64, "Erreur creation lecteur", "Accès au partage refusé")
case 3
msgbox(64, "Erreur creation lecteur", "Partage existant")
case 4
msgbox(64, "Erreur creation lecteur", "Nom de partage incorrect")
case 5
msgbox(64, "Erreur creation lecteur", "Partage non valide")
case 6
msgbox(64, "Erreur creation lecteur", "Erreur 6 .. Mot de passe incorrect")
EndSwitch
EndFunc ;==>_erreur
Re: [..] Vérification fonctionnement lecteur réseaux
Posté : mer. 26 nov. 2014 10:08
par Y01
Salut,
Essaie ça :
Code : Tout sélectionner
MsgBox(64,"Statut des lecteurs" , "Statut du lecteur P"&@CRLF&DriveStatus("p:\") &@CRLF& "Statut du lecteur B" &@CRLF& DriveStatus("B:\")&@CRLF& "Statut du lecteur H" &@CRLF& DriveStatus("H:\"))
Re: [..] Vérification fonctionnement lecteur réseaux
Posté : mer. 26 nov. 2014 10:09
par DimVar
Bonjour,
Dans votre fonction erreur, j'aurais plutôt rempli une variable en concaténant les messages d'erreur, plutôt que des msgbox.
Et dans votre script, une msgbox qui affiche la variable.
Cdlt.
Re: [..] Vérification fonctionnement lecteur réseaux
Posté : mer. 26 nov. 2014 10:18
par jguinch
Sinon, la balise Spoiler se place AVANT la balise Code.
Merci de modifier.
Re: [..] Vérification fonctionnement lecteur réseaux
Posté : mer. 26 nov. 2014 10:58
par jcaspar
M
erci à tous pour vos conseils !
J'ai bien modifier le spoiler comme demandé par le modérateur.
Effectivement la concaténation serait intéressante pour disposer d'un message global et
non d'un message par lecteur ....mais dans l'état chaque lecteur crée potentiellement une erreur distincte
par un appel distinct de la fonction erreur....il faudrait donc que chaque appel de la fonction
enrichisse une variable $erreur mais là je ne vois pas trop comment m'y prendre...
Pour ma compréhension ... j'aurais besoin d'un éclaircissement
La fonction DriveMapAdd retourne 1 si elle c'est bien déroulée et 0 si elle ne c'est pas bien déroulée
je présume que les erreurs sont des informations supplémentaires distinctes .... ( cela ne signifie pas que
Drivemapp add retourne 0,1,2,3,4,5,6 mais ajoute une information de retour si la valeur de retour initiale est 0
ma compréhension est elle exacte ?
En vous remerciant pour vos explications
Jean-Marc
Re: [..] Vérification fonctionnement lecteur réseaux
Posté : mer. 26 nov. 2014 12:05
par DimVar
Vous pouvez récupérer le status de @error si le return code est différent de 1.
Et donc incrémenter une variable $erreur avec le code retour de @error et renseigner le message approprié.
Cdlt, Dimvar.
Re: [..] Vérification fonctionnement lecteur réseaux
Posté : mer. 26 nov. 2014 13:22
par DimVar
Une solution envisageable (que je n'ai pas testé):
Code : Tout sélectionner
Local $aLecteur[4], $Error = ""
Local $aShare[4], $Return
$aLecteur[0] = 3
$aLecteur[1] = "P:"
$aLecteur[2] = "B:"
$aLecteur[3] = "H:"
$aShare[0] = 3
$aShare[0] = "\\xxxx\commun$"
$aShare[0] = "\\xxxx\poles$"
$aShare[0] = "\\xxxx\utilisateurs$"
For $i = 1 To $aLecteur[0]
$Return = DriveMapAdd($aLecteur[$i], $aShare[$i])
If $Return <> 1 Then
If @error =1 Then $Error=$Error&"Erreur sur lecteur "&$aLecteur[$i]&@CRLF&"Non défini"&@CRLF&@CRLF
If @error =2 Then $Error=$Error&"Erreur sur lecteur "&$aLecteur[$i]&@CRLF&"Accès au partage refusé"&@CRLF&@CRLF
If @error =3 Then $Error=$Error&"Erreur sur lecteur "&$aLecteur[$i]&@CRLF&"Partage existant"&@CRLF&@CRLF
If @error =4 Then $Error=$Error&"Erreur sur lecteur "&$aLecteur[$i]&@CRLF&"Nom de partage incorrect"&@CRLF&@CRLF
If @error =5 Then $Error=$Error&"Erreur sur lecteur "&$aLecteur[$i]&@CRLF&"Partage non valide"&@CRLF&@CRLF
If @error =6 Then $Error=$Error&"Erreur sur lecteur "&$aLecteur[$i]&@CRLF&"Mot de passe incorrect"&@CRLF&@CRLF
EndIf
Next
Exit
Re: [..] Vérification fonctionnement lecteur réseaux
Posté : mer. 26 nov. 2014 16:10
par jcaspar
M

erci beaucoup pour les explications et ce code conceptuellement très beau !
Jean-Marc
Re: [R] Vérification fonctionnement lecteur réseaux
Posté : mer. 26 nov. 2014 16:55
par DimVar
Je vous en prie.
Le retour de la commande DriveMapAdd retourne 1 si succes et 0 en cas d'echec.
C'est la macro @error qui retourne les différents type d'erreur. (comme précisé dans la doc)
Cdlt.
Dimvar.