IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Savoir le chemin du dossier "Application Data" de l'utilisateur en cours


Sujet :

VBScript

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 62
    Points
    62
    Par défaut Savoir le chemin du dossier "Application Data" de l'utilisateur en cours
    Bonjour,

    J'ai développé un script qui permet d'écrire un texte dans un fichier.
    Je voudrais mettre ce fichier dans le dossier "Application data" de l'utilisateur en cours. Est ce qu'il y'a une fonction en VBScript qui me permet de récupérer le chemin de ce dossier ?
    genre :
    C:\Documents and Settings\nom_utilisateur\Application Data

    Merci d'avance.

  2. #2
    Membre confirmé Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Points : 582
    Points
    582
    Par défaut
    Bonjour.

    Je pense que tu peux simplement utiliser la variable d'environnement UserName ou la propriété UserName de l'objet WshNetwork, qui te renvoient toutes les deux le nom de l'utilisateur courant.

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set WshShell = WScript.CreateObject("WScript.Shell")
    strUserName = WshShell.ExpandEnvironmentStrings("%USERNAME%")
    Ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set WshNet = CreateObject("WScript.Network")
    strUserName = WshNet.Username
    Puis tu le mets dans ta chaine qui contient le chemin de app data :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strPath = "C:\Documents and Settings\" & strUserName  & "\Application Data"
    Ca devrait normalement marcher.

  3. #3
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 112
    Points : 16 645
    Points
    16 645
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WshShell.ExpandEnvironmentStrings("%APPDATA%")
    renvoi le chemin complet, sans risque de compilation d'un lecteur autre que C:\ (par exemple)

  4. #4
    Membre confirmé Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Points : 582
    Points
    582
    Par défaut
    ProgElecT a parfaitement raison c'est beaucoup mieux. Bien joué.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 62
    Points
    62
    Par défaut
    Problème résolu, Je tiens à vous remercier les deux.
    Les deux solutions marchent parfaitement, bien que la deuxième solution est meilleur..

    J’ai maintenant un autre problème !

    En fait je veux que pour chaque visiteur de la page web que j’ai crée, un fichier soit enregistré dans le dossier Application data de son PC pour garder quelques informations qu’il a saisie. Le problème c’est que les paramètres de sécurités de l’intranet local d’internet explorer ne permettent pas d’exécuter mon script, et donc je ne peux pas créer le fichier souhaité sur le disque de chaque poste client.

    Internet Explorer m’affiche cette erreur :
    Un composant ActiveX ne peut pas créer un objet : 'Scripting.FileSystemObject'

    Je dois baisser le niveau de sécurité de certaines options pour que le script soit exécuté, ce qui est pénible de le faire, car j’ai plus de 100 postes clients.

    Y’a-t-il une solution pour éviter ce problème ? Y’a-t-il une autre fonction qui permet de créer un simple fichier sans que Internet Explorer le bloque ?
    Voilà le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sub Ecrire()
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    dim WshShell
    Set WshShell = CreateObject("WScript.Shell")
    Const ForWriting = 2
       Dim  f     
       Set f = oFSO.OpenTextFile(WshShell.ExpandEnvironmentStrings("%APPDATA%") & "\texte.txt", ForWriting,true)
       f.write( form1.txtuser.value & vbcrlf & form1.txtpassword.value )
    end sub
    Merci d'avance !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Nettoyeur de pièces chez mon oncle Picsou
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Nettoyeur de pièces chez mon oncle Picsou

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WshShell.ExpandEnvironmentStrings("%APPDATA%")
    renvoi le chemin complet, sans risque de compilation d'un lecteur autre que C:\ (par exemple)
    IE m'affiche le message d'erreur suivant: "'WshShell' est indéfini"

  7. #7
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 112
    Points : 16 645
    Points
    16 645
    Par défaut
    Salut, bienvenue sur DVP
    As tu aussi bien recopié ses 2 lignes avant dans ton code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim WshShell
    Set WshShell = CreateObject("WScript.Shell")

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Nettoyeur de pièces chez mon oncle Picsou
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Nettoyeur de pièces chez mon oncle Picsou

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Donald Duck Voir le message
    IE m'affiche le message d'erreur suivant: "'WshShell' est indéfini"
    C'est bon, j'ai trouvé. Sous IE, il faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new ActiveXObject("WScript.Shell").SpecialFolders("APPDATA")
    Pour assurer la compabilité avec IE et tous les autres navigateurs, il faut donc faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(navigator.userAgent.indexOf("MSIE")){     //IE
         var appdata = new ActiveXObject("WScript.Shell").SpecialFolders("APPDATA");
    }
    else{                           //Les autres navigateurs
         dim WshShell
         Set WshShell = CreateObject("WScript.Shell")
         var appdata = WshShell.ExpandEnvironmentStrings("%APPDATA%");
    }

  9. #9
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Heureux pour toi d'avoir trouvé

    Mais il aurait été bon de préciser que tu travaillais avec JavaScript et pas avec VBScript

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Nettoyeur de pièces chez mon oncle Picsou
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Nettoyeur de pièces chez mon oncle Picsou

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Quand j'ai demandé ma question, je ne connaissais pas VBScript. Quand je l'ai découvert, je me suis rendu compte que j'ai fait une bêtise. Mais c'est pas grave, maintenant on peut voir ici comment faire ça avec Javascript aussi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connaitre le chemin du dossier Application Data
    Par bakaneko dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/03/2010, 01h20
  2. Réponses: 2
    Dernier message: 11/03/2007, 18h51
  3. [Portabilité]Lancer une application sans savoir son chemin
    Par tony_big_guy dans le forum Général Java
    Réponses: 3
    Dernier message: 10/12/2005, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo