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 :

Lancer un Batch en fenêtre reduite ds la barre des tâches (problème de code)


Sujet :

VBScript

  1. #1
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 468
    Points
    468
    Par défaut Lancer un Batch en fenêtre reduite ds la barre des tâches (problème de code)
    Slt tout le monde,

    J'ai fais des recherches avec Google mais les exemples sont toujours pratiquement les mêmes et sans inclure la commande intWindowsStyle

    Code complet de mon fichier VBS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set WshShell = WScript.CreateObject("WScript.Shell")
    object.Run (strCommand, [intWindowStyle], [bWaitOnReturn]) 
    WshShell.Run ("C:\File.cmd", 0, True)
    Lorsque je lance mon fichier.vbs, Windows indique le message d'erreur suivant et le code ne fonctionne pas :
    --------------------------------------------------------------
    Ligne: 2
    Caract.: 60
    Erreur: L'appel d'une fonction Sub n'admet pas de parenthèse.
    --------------------------------------------------------------
    Si quelqun pouvais corriger, ça serait sympa car je n'y arrive pas, même apres plusieurs essaies.

  2. #2
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut
    La solution est dans le message d'erreur : Run est une fonction de type SUB. Son appel se fait donc comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WshShell.Run "C:\File.cmd", 0, True
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call WshShell.Run ("C:\File.cmd", 0, True)
    Par contre, tu devrais supprimer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object.Run (strCommand, [intWindowStyle], [bWaitOnReturn])
    qui n'est que la définition de la signature de la méthode Run
    abertaud
    ---------

    - pas de réponse technique en PV, utilisez les forums
    - si vous trouvez seuls la solution, n'abandonnez pas votre post, mettez-le à jour pour les autres
    - le tag est parfois en voie d'extinction, participez à sa survie

  3. #3
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 468
    Points
    468
    Par défaut
    Excellent !

    J'allais te répondre que j'avais déjà essayé sans les parenthèses, justement suite au message d'erreur et que ça n'avais pas fonctionné mais j'a qd m fait un copié/collé de ta ligne de code ds mon vbs avant et là oh miracle ça marche !

    Par contre, qd je regarde ds les processus, mon fichier s'appelle "cmd.exe". En fait il n'a pas de titre. Comment lui en donner un stp ?

  4. #4
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut
    la commande Run permet d'exécuter une commande. Son traitement est identique à celui qui serait fait dans l'invite de commande windows "cmd.exe", en saisissant Voila pourquoi les espaces foutent le bordel s'il y en a dans le chemin d'accès à ton fichier, et voila pourquoi il apparait comme cmd.exe dans le gestionnaire des tâches.

    Pour ce qui est de son renommage, je n'ai pas de solution à te donner malheureusement...
    abertaud
    ---------

    - pas de réponse technique en PV, utilisez les forums
    - si vous trouvez seuls la solution, n'abandonnez pas votre post, mettez-le à jour pour les autres
    - le tag est parfois en voie d'extinction, participez à sa survie

  5. #5
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 468
    Points
    468
    Par défaut
    Tant pis c pas bien grave, j'ai plus important à gérer en ce moment. Merci qd m.

    Par contre, je n'ai pas d'espace ds le nom de mes fichiers. J'ai pris l'habitude avec MS-DOS qui est encore plus chiant puisqu'il faut se limiter à 8 caractères. A moins que "_" soit pris pour un espace.

    Cela dit, ce VBS execute un Batch qui dans son code (celui du Batch) execute un autre VBS contenant une extansion, donc un espace.

  6. #6
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut
    La commande run à le même comportement que si tu utilisais MS-DOS. Donc les caractères UNDERSCORE dans les chemins ne posent aucun problème.

    Par contre, je te conseille quand même de toujours rajouter Chr(34) en début et fin de chaine. Ca correspond au caractere guillemet et ca te protegera au cas où un espace apparait un jour dans un chemin d'accès à un exécutable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WshShell.Run Chr(34) & fichierAExecuter & Chr(34), 0, True
    abertaud
    ---------

    - pas de réponse technique en PV, utilisez les forums
    - si vous trouvez seuls la solution, n'abandonnez pas votre post, mettez-le à jour pour les autres
    - le tag est parfois en voie d'extinction, participez à sa survie

  7. #7
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 468
    Points
    468
    Par défaut
    merci pour l'astuce.

    Aller, j'ai la flème de jouer du Google, mais je me demande à l'instant quels sont les comandes pour ajouter/supprimer une clé de registre et Copier/coller des fichiers stp ? Si c trop long à expliquer, je comprendrais.

    PS : je début en VB.NET et c le prepier language que j'apprends. J'ai mais 10 jours à faire un truc simple et encore, Aspic, un membre de ce forum m'a filé un bon coup de main. Alors recommencer toutes mes recherches pour le VBS... j'ai pas le courrage pour le moment.

    a+

  8. #8
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut
    pour copier tes fichiers, jette un oeil dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     '<<<<<<< LECTURE d'un fichier >>>>>>>>>>>>
     
    'déclaration file system object
    Dim fso
     
    'instanciation
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'on instance le fichier texte 
    Set Ftxt = FSO.OpenTextFile("Monchemin")
     
    'on parcours chaque ligne du fichier texte
    Do While Not Ftxt.AtEndOfStream
          MaVariable = Ftxt.Readline
          '....... <- votre code ici pour traiter chaque ligne
    Loop
     
    Ftxt.Close
     
     
    '<<<<<<< ECRITURE dans un fichier >>>>>>>>>>>>
     
    'déclaration file system object
    Dim fso
     
    'instanciation
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'on instance le fichier texte dans lequel on veut ecrire
    Set Ftxt =  FSO.createTextFile("Monchemin",true) 'true=ecrase
     
    'On ecrit ce que l'on veut dans le fichier 
    Ftxt.writeline ("Mon texte à écrire ou ma Variable texte")
     
    Ftxt.Close
     
    '<<<<<<<<<  DEPLACER un fichier >>>>>>>>>>>>>>>
     
    'déclaration file system object
    Dim fso
     
    'instanciation
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'Déplacement du fichier
    Set Ftxt = fso.GetFile("moncheminsource")   'Fichier origine
    Ftxt.move("monchemindestination") 'emplacement destination
     
    '<<<<<<<<<  COPIER un fichier >>>>>>>>>>>>>>>
     
    'déclaration file system object
    Dim fso
     
    'instanciation
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'Copie du fichier
    Set Ftxt = fso.GetFile("moncheminsource")   'Fichier origine
    Ftxt.copy("monchemindestination") 'emplacement destination
     
    '<<<<<<<<<  SUPPRIMER un fichier >>>>>>>>>>>>>>>
     
    'déclaration file system object
    Dim fso
     
    'instanciation
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    'Suppression du fichier
    Set Ftxt = fso.GetFile("moncheminsource")   'Fichier origine
    Ftxt.delete
    ca traite la création la lecture et l'écriture, mais aussi la copie et la suppression. Pour un déplacement, fais exactement comme pour la copie en utilisant la commande Move au lieu de Copy.

    Pourquoi veux-tu toucher au registre ?
    abertaud
    ---------

    - pas de réponse technique en PV, utilisez les forums
    - si vous trouvez seuls la solution, n'abandonnez pas votre post, mettez-le à jour pour les autres
    - le tag est parfois en voie d'extinction, participez à sa survie

  9. #9
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 468
    Points
    468
    Par défaut
    pour personaliser windows. J'ai 2 partitions de mon DD.

    C: = OS + Programmes + profil utilisateur (incomplet)
    D: = Documents de Allusers, Mes documents, mes favoris, dossier Bureau, messages d'Outlook Express, image Ghost...

    Si je restaure mon PC suite à un virus ou autre, je n'ai meme pas besoin de faire de sauvegarde avant. pratique !

    Je le fais deja avec un Batch mais avec un VBS, je pourrais rajouter un MsgBox du genre " Attention, modification du compte toto" ou des messages ds le genre. Et puis ça fait plus propre qu'avec CMD.

    Voila, tu sais tout

  10. #10
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 468
    Points
    468
    Par défaut
    move, copy... on croirait du DOS.

    Ne me dit pas que pour le regsitre, c REG ADD, REG DELTE... ça serait trop beau

  11. #11
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut
    Je ne sais pas encore pour le registre.

    Mais mon projet arrive à son terme et quand j'en aurai fini avec toute sa doc, qui a pris un peu de retard, je serai amené à forcer une exécution quotidienne de mes vbs.

    Donc je serai peut-être amené à me pencher sur le sujet qui t'intéresse à ce moment là.
    abertaud
    ---------

    - pas de réponse technique en PV, utilisez les forums
    - si vous trouvez seuls la solution, n'abandonnez pas votre post, mettez-le à jour pour les autres
    - le tag est parfois en voie d'extinction, participez à sa survie

  12. #12
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 468
    Points
    468
    Par défaut
    Bonne continuation alors, merci pour les infos, et à bientot.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/07/2011, 19h39
  2. Fenêtre cachée par la barre des tâches
    Par doons dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/10/2008, 09h59
  3. Colorer la fenêtre minimisée dans la barre de tâche ?
    Par VerrNum dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 19/03/2007, 11h48
  4. Cacher une fenêtre de la barre des tâches
    Par rozwel dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 07/01/2007, 19h53
  5. Réponses: 2
    Dernier message: 25/08/2005, 05h44

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