Page 1 sur 1
[R] DriveMapAdd()
Posté : ven. 05 sept. 2014 10:20
par Hugues
Bonjour,
Je me connecte à une station en utilisant
Code : Tout sélectionner
DriveMapAdd("", "\\" & $IPCName & "\C$", 0, $User, $Password)]
.
J'ai mis volontairement "" pour device car, je ne veux pas que le lecteur réseau apparaisse dans l'explorateur Windows.
J'aimerai savoir ce que je dois mettre pour ouvrir un fichier voulu qui est sur ce lecteur réseau?
Merci par avance.
Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 10:31
par jguinch
Le chemin UNC : \\poste\c$\chemin\fichier.txt
Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 10:39
par Faco
Salut,
je pence que device ne peux pas être vide, ça te renvoi pas '0' ton drivemap ??
si tu veux pas montrer ton lecteur tu peux le cacher via le registre :
► Afficher le texte
Code : Tout sélectionner
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoDrives", "REG_DWORD", $dwordCacheDisque)
pour savoir quoi mettre dans '$dwordCacheDisque' :
A: -> 2^0 = 1
B: -> 2^1 = 2
C: -> 2^2 = 4
...
...
et pour cacher plusieurs disques tu additionne les valeurs :
-cacher A: et B: -> A+B=1+2=3
-cacher A: et C: -> A+C=1+4=5
-cacher A: et B: et C: -> A+B+C=1+2+4=7
...
...
Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 10:53
par Hugues
Merci à vous 2,
Si faco on peut mettre un vide -> The device to map, for example "O:" or "LPT1:". If you pass an empty string for this parameter a connection is made but not mapped to a specific drive. If you specify "*" an unused drive letter will be automatically selected.
La solution de jguinch me va bien. Je prefere ne pas toucher au base de registre. Je prefere les solutions simple.
Par contre la deconnexion du lecteur se fait comment?
Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 10:54
par jguinch
Aucun problème pour le laisser vide. Voir la doc :
If you pass an empty string for this parameter a connection is made but not mapped to a specific drive
Ca établit la connexion, mais ça ne mappe pas de lettre de lecteur.
Pareil pour DriveMapDel
Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 11:21
par Hugues
Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 12:13
par Faco
si tu utilise ça :
\\poste\c$\chemin\fichier.txt
tu ne map pas de disque donc pas besoin de "démapper"

Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 13:27
par jguinch
@Hugues : oui.
@Faco : c'est pas parce qu'il n'y a pas de lettre mappée que la connexion doit rester active :
- Si par exemple le script mappe se connecte à un partage (via MapDriveAdd) pour l'installation d'une application, c'est peut-être pas une mauvaise idée de le déconnecter derrière, si on veut pas que quelqu'un accède au serveur.
- Si on a besoin d'accéder au serveur avec un nom d'utilisateur différent, on ne pourra pas si on ne supprime pas la connexion active (sauf si on utilise un nom de machine différent ou l'adresse IP pour le même serveur).
Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 13:37
par Hugues
Ok, pour mon application, le but du jeu est de lire un fichier sur une station.
Je me connecte en caché, je lis le fichier, je ferme la connexion et ensuite je travaille sur mon FileRead.
Mais comment s'assurer que la connexion est vraiment supprimée quand on fait
?
Est-ce que selon mon code joint c'est OK?
► Afficher le texte
Code : Tout sélectionner
DriveMapAdd("", "\\" & $IPCName & "\C$", 0, $User, $Password) ;Connexion
$hFile = FileOpen("\\" & $IPCName & "\C$\" & "monfichier.dat", 0)
If $hFile = -1 Then Exit MsgBox(16, "Erreur", "Impossible d'ouvrir le fichier " & $hFile)
Local $sContent = FileRead($hFile)
FileClose($hFile)
DriveMapDel("\\" & $IPCName & "\C$")
Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 13:49
par jguinch
DriveMapGet te permettra de savoir si la connexion existe ou non.
Plutôt que DriveMapDel, tu peux utiliser _WinNet_CancelConnection2 avec les 2 paramètres à True. Ca permet de forcer la suppression de la connexion.
Re: [..] DriveMapAdd()
Posté : ven. 05 sept. 2014 14:34
par Hugues
Ok merci _WinNet_CancelConnection2("\\" & $IPCName & "\C$", True, True) me va bien ^^
Re: [R] DriveMapAdd()
Posté : ven. 05 sept. 2014 15:59
par Faco
dac,
on peut pas juste faire ça "$hFile = FileOpen("\\poste\c$\chemin\fichier.txt", 0)" alors?
Re: [R] DriveMapAdd()
Posté : ven. 05 sept. 2014 16:09
par jguinch
@faco : Tu peux, à condition d'avoir accès au partage (d'où l'intérêt de s'y connecter avant avec DriveMapAdd, en spécifiant un login/mdp)
Re: [R] DriveMapAdd()
Posté : ven. 05 sept. 2014 16:17
par Faco
dac,
j'ai pas eu de problème vu que je suis admin domaine et admin local des machines.
A retenir.... Merci