Page 1 sur 1

[..] Attendre qu'un lecteur réseau soit joignable

Posté : ven. 07 nov. 2014 09:39
par lokomass
Bonjour à tous,

Comment faire pour être sur à l'instant t de mon programme, que le lecteur réseau N:\ soit monté ?
Je m'explique, je suis censé vérifier la présence d'un fichier sur ce lecteur.
A l'allumage (ou sortie de veille), il peut arriver que le lecteur soit injoignable.
Du coup j'ai créer un bat que je lance, qui force le montage :

Code : Tout sélectionner

net use N: \\192.168.100.150\Folder /PERSISTENT:YES
Ce qui donne dans mon script :

Code : Tout sélectionner

;Montage
RunWait("C:\Users\Loko\Documents\Mount\Mount.bat", "", @SW_HIDE)
Sleep(5000)
 
A la suite de mon programme, je fais un test sur le fichier :

Code : Tout sélectionner

;Vérifie le fichier
If ($Fichier = -1) Then
    Exit
EndIf
 
Seulement je veux que le programme sorte uniquement si le fichier n'existe pas et non si le lecteur n'est pas connecté (ce qui revient au même pour le programme).
Donc comment mettre une condition supplémentaire, pour dire, tant que N:\ n'existe pas, tu relances le Mount.bat ?

Re: [..] Attendre qu'un lecteur réseau soit joignable

Posté : ven. 07 nov. 2014 09:48
par TomAijerrie
Quelquechose du genre :

Code : Tout sélectionner

AdlibRegister("checkN",60000); vérification toutes les minutes

Func checkN()
    DriveGetType("N:\")
    If @error Then Return;Si le disque n'est pas connecté on quitte la fonction
    
    If FileExists(...);suite de ton script pour voir si ton fichier existe ou non
    ;...
EndFunc
N’oublies pas d'ajouter une boucle infini pour que le programme ne quitte pas

Re: [..] Attendre qu'un lecteur réseau soit joignable

Posté : ven. 07 nov. 2014 10:38
par lokomass
J'ai testé après avoir changé d'interface réseau.
Si le lecteur a été monté avant, il ne s'en rend pas compte.
En revanche si je clique sur le lecteur dans windows j'ai "lecteur injoignable" alors que autoit m'affiche bien un retour sur DriveGetType => Network

Re: [..] Attendre qu'un lecteur réseau soit joignable

Posté : ven. 07 nov. 2014 11:23
par lokomass
En revanche la fonction DriveStatus est parfaite, elle renvoie READY ou UNKNOWN.

Code : Tout sélectionner

While Check("N") <> "READY"
    ;Lancement du mount.bat
    Sleep(5000)
Wend
Func Check($Lecteur)
    $Etat = DriveStatus($Lecteur & ":\")
    Return $Etat
EndFunc
 

Re: [..] Attendre qu'un lecteur réseau soit joignable

Posté : ven. 07 nov. 2014 17:03
par Faco
salut,
et tu peux pas mettre deux fichiers dans ton partage, un fichier tout le temps là (ex : "toutLeTempsLa.txt") et l'autre, celui que tu utilise déjà.

tu vérifie si "toutLeTempsLa.txt" est là, sinon c'est que ton partage est pas monté ou pas joignable.

C'est pas beau mais ça pourrai te dépanner.