nanou1605
Messages postés36Date d'inscriptionmercredi 10 mars 2004StatutMembreDernière intervention15 décembre 2006
-
13 juin 2006 à 10:53
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
13 juin 2006 à 19:55
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.
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 20081 13 juin 2006 à 12:00
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
----------------------------------------------------------------------------
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 20081 13 juin 2006 à 11:22
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"
nanou1605
Messages postés36Date d'inscriptionmercredi 10 mars 2004StatutMembreDernière intervention15 décembre 2006 13 juin 2006 à 11:46
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é ;-)
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 13 juin 2006 à 19:55
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