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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

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

#1

Message 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 ?
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

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

#2

Message 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
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

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

#3

Message 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
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

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

#4

Message 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
 
Faco
Niveau 4
Niveau 4
Messages : 80
Enregistré le : lun. 29 juil. 2013 18:09
Status : Hors ligne

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

#5

Message 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.
Répondre