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 :

Suppression d'un VBS après exécution


Sujet :

VBScript

  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 19
    Par défaut Suppression d'un VBS après exécution
    Bonjour ,

    Je me permet de vous solliciter après moult recherches infructueuses.

    Voici ma problématique:

    Sur des postes Vista, la remontée de l'imprimante par défaut est visiblement assez anarchique pour les utilisateurs qui se connecte pour la première fois sur un poste.

    Pour palier à cet état de fait , j'ai réalisé à l'aide de code trouvé sur internet ce petit script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set WshNetwork = CreateObject("WScript.Network" ) 
    WshNetwork.SetDefaultPrinter "EPSON Mono-Laser Series2"
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.DeleteFile("imprimante.vbs")

    J'ai positionné ce script dans le menu démarrage du default user soit "C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" afin que la bonne imprimante soit mise par défaut à la création du profil.

    A la connexion avec un profil utilisateur , le script s'exécute et définit la bonne imprimante par défaut mais génère un message d'erreur lors,je suppose, de la suppression du vbs.



    Cependant si j'exécute le script en double cliquant dessus dans son emplacement "C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" il se supprime correctement après exécution.

    J'ai également essayé comme ceci au cas où :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set WshNetwork = CreateObject("WScript.Network" ) 
    WshNetwork.SetDefaultPrinter "EPSON Mono-Laser Series2"
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.DeleteFile("C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\imprimante.vbs")

    Mais le résultat est le même, je ne comprends pas d'où peut provenir le problème en utilisant mes connaissances limités en développement.

    Y aurait il une âme charitable avec un avis éclairé ?

    D'avance merci.

    Mathieu

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    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 420
    Par défaut
    J'ai positionné ce script dans le menu démarrage.....
    Si tu mets un raccourci vers ce script au lieu du script lui-même tout en mettant imprimante.vbs dans le même dossier que ce script, quel est le résultat ?
    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

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 19
    Par défaut
    Pardon je me suis mal exprimé, en fait il n'y a qu'un seul script.
    imprimante.vbs est contient le code que j'ai afficher et qui doit mettre l'imprimante par défaut puis se supprimer à la fin d'exécution.

    Mais peut-être que je m'y prends pas mal ? Faudrait il deux petits scripts ?

    Un pour définir l'imprimante puis un pour supprimer le script de définition de l'imprimante ?

    Merci

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    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 420
    Par défaut
    Salut

    Dans un tel cas, ajoute à la fin de ton fichier script un code tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    set fso=CreateObject("Scripting.FileSystemObject")
    set f=fso.GetFile(Wscript.scriptfullname)
    f.Delete
    De cette façon, tu n'as pas à fournir le nom et/ou le chemin du fichier à supprimer.

    Et tu peux mettre le fichier lui-même dans le dossier Démarrage(Startup). Avec ma configuration(Win Home SP3), ça marche sans problème.
    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

  5. #5
    Membre averti
    Inscrit en
    Août 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 19
    Par défaut
    C'est exactement ça.
    Cela fonctionne parfaitement.

    Je vous remercie pour votre aide.

    Je conserve précieusement ce morceau de code qui , je n'en doute pas , me servira à nouveau dans le futur

    Mathieu

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

Discussions similaires

  1. Suppression d'un dossier après une requete
    Par vexal dans le forum Paradox
    Réponses: 4
    Dernier message: 26/06/2007, 13h54
  2. Revenir sur la cellule sélectionné après exécution d'une macro
    Par Daniel-Gérald dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/02/2007, 21h50
  3. Mémoire après exécution du programme
    Par Woufeil dans le forum C++
    Réponses: 14
    Dernier message: 23/08/2006, 01h33
  4. Réponses: 4
    Dernier message: 16/09/2005, 14h27
  5. [DOM] Problème de suppression sauts de lignes après modification XML
    Par chabada dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 15/06/2005, 13h46

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