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 : 37
    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
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 170
    Points
    17 170
    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)
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  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 : 37
    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
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 170
    Points
    17 170
    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")
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  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 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    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
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  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, 00h20
  2. Réponses: 2
    Dernier message: 11/03/2007, 17h51
  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, 14h06

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