Lecteur réseau [Résolu]

Signaler
Messages postés
36
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2006
-
cs_JMO
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Bonjour à tous,

J'ai un problème lors de la lecture d'un fichier sur un lecteur réseau.

Voici en quelques mots le déroulement de mon application (client/serveur).

J'ai une application "MonAppli.exe" qui se trouve dans "c:\Program Files\MonAppli"

J'ai un fichier MonAppli.ini qui me permet de récupérer le chemin du fichier de paramètrage de l'application.
--------------
[SRV]
upd=z:\update\
...
...
...
--------------

Sur le disque réseau, j'ai un fichier "z:\update\config.ini" qui contient différents paramètres (Serveur SQL, User, password, BD, répertoire de sauvegarde des fichiers, ...). Ces paramètres sont communs à tous les utilisateurs.

Problème :

Lorsque je lance mon apllication, il arrive de façon aléatoire qu'elle ne trouve pas mon fichier "z:\update\config.ini".Donc je n'arrive pas à me connecter a ma BD.

Le lecteur "Z:" existe j'en suis certain.
Je me demande si la connection réseau n'est pas dé-initialisée par Windows lorsque celle-ci n'est plus utilisée depuis un certain temps.

D'ailleur, lorsque je vais dans l'explorateur sur le Z , puis que je relance l'application, elle trouve le fichier et démarre correctement.

Cette application est installée chez plusieurs clients et je ne peux pas leurs dire :
" Si le programme plante, allez dans l'explorateur sur le disque Z puis relancez l'application." ça ne fait pas très pro.

Quelqu'un a t'il déjà rencontré ce genre de problème, et si oui, comment l'avez vous résolu?

Sinon, toutes vos suggestions sont les biens venues.

Merci
Seb

7 réponses

Messages postés
228
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
4 janvier 2008
1
Cela peut arriver qu'il perde la connection un instant donné et que lorsque tu ouvres l'explorateur il la retrouve donc c'est pour cela que tu ne vois pas de croix rouge (en effet lorsque tu ré-ouvres l'explorateur il se reconnecte sur toutes ses lettres réseau)
Je ne vois pas trop comment faire...

peut-être en créant un fichier .bat ?? est-ce que tu connais ?? les fichiers .bat sont des fichiers de Commande DOS et pourrait te permettre de re-connecter une lettre réseau

démarche à suivre :
----------------------------------------------------------------------------
donc tu crée un fichier connexion.bat
puis à l'intérieur tu y met

REM déconnecte la lettre Z:
net use Z: /D /Y
REM reconnecte la lettre Z: sur le partage que tu lui met
net use Z: \\nomduPC\partage

ensuite dans ton prog si tu ne trouve pas la lettre Z: tu fais
Shell ("chemin d'accès à ton fichier . bat\connexion.bat")

cela lance l'execution du fichier .bat
puis tu fais une pause de l'ordre de la seconde le temps de connecter ta lettre
et tu continue l'execution de ton programme
----------------------------------------------------------------------------

voilà

Deluka.
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
4 janvier 2008
1
Non la connection n'est pas dé-initialisée par Windows au bout d'un certain temps : lorsque tu connectes un lecteur réseau c'est pour toute la durée de ta session Windows.

Par contre il se peut qu'à certains moments ton lecteur Z: ne soit plus accessible (perte de la connexion dû à une mini-coupure réseau ou autre...) et le fait que tu ailles le chercher via l'explorateur le re-connecte.

Je ne connais aucune solution pour cela.
Seulement de mettre un message d'avertissement à l'utilisateur du genre :
"le lecteur Z: sur \\nomduPC\partage est inaccessible"

++

Deluka.
Messages postés
36
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2006

Salut Francky,

merci pour ta réponse rapide.

Lorsque ce problème m'arrive, il n'est plus possible de lancer l'application tant que je n'ai pas été sur le Z ou redémarré le PC.

Y a t'il moyen de reconnecter le lecteur réseau par programmation?

Je pensais aussi utiliser la fonction fso.FileExist(...), est ce que cette fonction re-connectera le lecteur???


seb
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
4 janvier 2008
1
Comment le connectes-tu la première fois ce lecteur réseau ?

Deluka.
Messages postés
36
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2006

Le lecteur existe dans la session windows de l'utilisateur. (au démarrage)
Ce phénomène est aléatoire.
L'application peut démarrer correctement le matin puis l'aprem il ne trouve plus le Z ???? Pourtant lorsque je lance l'explorateur, il le trouve et il n'est pas déconnecté car pas de X rouge sur le lecteur.
Dés que je vais sur le Z et que je relance l'application plus de problème.

Je ne comprend pas ce qu'il se passe et les tests ne sont pas faciles car je n'arrive pas à le reproduire chez moi donc je dois aller chez mon client et comme c'est aléatoire....ce n'est pas gagné ;-)
Messages postés
36
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2006

Je vais essayer avec le fileExist() et si je ne trouve pas le fichier alors j'utiliserai un .bat pour reconnecter le lecteur.

Merci pour tout et bon aprem.

Seb
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
24
Bonsoir,

Avec NetWork, c'est également possible.

'*********************** Mappage du server OXALYS ************
Dim WshNetwork 
Set WshNetwork = WScript.CreateObject("WScript.Network")
'  WshNetwork.RemoveNetworkDrive "U:"
'  WshNetwork.MapNetworkDrive "U:", "[file://\\Oxalys\OXALYS\OXADATA\JOR \\Oxalys\OXALYS\OXADATA\JOR]"

If suffit de tester si le "Z" existe.

Ci-dessous, en exemple, un script listant les disques:

Call   ShowFreePourcent()
MsgBox ShowFreePourcent
Function ShowFreePourcent()
   Dim fso, d, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set dc = fso.Drives   'permet de parcourir tous les disks
   For Each d in dc
      Select Case d.DriveType  'selection en fonction du type de lecteur
'        Case 0: s = "Inconnu"
'        Case 1: s = " Disk Amovible"'        Case 2: s " Disk Fixe" & "> Espace disponible: " & d.AvailableSpace/1024 & " Koctets"
'        Case 3: s = " Lecteur Réseau"
'        Case 4: s = " Lecteur CD-ROM"
'        Case 5: s = " Disk virtuel" 
   
         Case 2:
         s = "Lecteur " & d.DriveLetter & ":" & vbCrLf
         s = s & "Espace total     en Go :  " & FormatNumber(d.TotalSize/1024/1024/1024, 1) &vbCrLf
         s = s & "Espace occupé en Go :   "   & FormatNumber(FormatNumber(d.TotalSize/1024/1024/1024, 1) - _
               FormatNumber(d.AvailableSpace/1024/1024/1024, 1), 1) & vbCrLf        
         s = s & "Espace libre      en Go :   " & FormatNumber(d.AvailableSpace/1024/1024/1024, 1) & vbCrLf&vbCrLf       
                   
 
         s = s & "Espace total en Mo :     " & FormatNumber(d.TotalSize/1024/1024, 0) &vbCrLf  
         s = s & "Espace occupé en Mo : "   & FormatNumber(FormatNumber(d.TotalSize/1024/1024, 0) - _
               FormatNumber(d.AvailableSpace/1024/1024, 0), 0) & vbCrLf       
         s = s & "Espace libre en Mo :      " & FormatNumber(d.AvailableSpace/1024/1024, 0) & vbCrLf&vbCrLf               




         s = s & "Espace total en Ko :  " & FormatNumber(d.TotalSize/1024, 0) &vbCrLf
         s = s & "Espace occupé en Ko : "   & FormatNumber(FormatNumber(d.TotalSize/1024, 0) - _
               FormatNumber(d.AvailableSpace/1024, 0), 0) & vbCrLf                            
         s = s & "Espace libre en Ko :      " & FormatNumber(d.AvailableSpace/1024, 0) & vbCrLf&vbCrLf               
 
         s = s & "Pourcentage occupé :  " & FormatPercent((d.ToTalSize - d.AvailableSpace) / d.ToTalSize, 0) &vbCrLf
         s = s & "Pourcentage libre      :  " & FormatPercent((d.AvailableSpace /_
               d.TotalSize), 0) & vbCrLf&vbCrLf


         result = result &vbCrLf& s &vbCrLf
         Case Else
      End Select
   Next     
   ShowFreePourcent = result
End Function

=================================
jean-marc