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?

Code : Tout sélectionner

$hFile = FileOpen("FileName", 0)
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
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

Code : Tout sélectionner

DriveMapDel("\\" & $IPCName & "\C$")
suffirait?

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

Code : Tout sélectionner

DriveMapDel("\\" & $IPCName & "\C$")
?

Est-ce que selon mon code joint c'est OK?
► Afficher le texte

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