ShellExecute passage arguments Variables [VB6] [Résolu]

ellimac60 - 21 juin 2013 à 15:11 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 17 avril 2014 à 14:16
Bonjour,

Après maintes et maintes recherches sur le web, je ne parviens pas à faire passer deux arguments qui sont des variables à la fonction ShellExecute. Je souhaiterai exécuter un fichier batch, avec la fonction ShellExecute cela fonction de cette manière :
Call ShellExecute(Me.hwnd, "open", Path, "nomClient NumDevisDesignation", Path, 1), j'ai bel et bien deux arguments , or nomClient et NumDevisDesignation sont des variables instanciées un peu plus haut dans mon code, comment faire pour qu'elle passe en tant que variables ?
j'ai essayé :
Call ShellExecute(Me.hwnd, "open", Path, Chr(34) & nomClient & Chr(32) & NumDevisDesignation & Chr(34), Path, 1)
mais en vain cela ne fonctionne pas. Habituée à programmer en C# et Java, j'ai quelques difficultés en VB6.

Cordialement

Camille
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
ellimac60 - 25 juin 2013 à 11:26
1
Merci
J'ai trouvé
Call ShellExecute(Me.hwnd, "open", Path, "" & nomClient & "" & "" & Designation & "" & "" & RA & "" & "" & numAffaire & "", Path, 10)
En veillant bien à retirer les espaces éventuels contenus dans les variables et en ajouter à la fin de chaque variable.

Merci encore


Camille

Merci ellimac60 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de ellimac60
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 21 juin 2013 à 16:27
0
Merci
Bonjour,
Quelle est la syntaxe qui "marche" de ce que tu écrirais directement en ligne de commande (sans VB, donc) ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
ellimac60 - 24 juin 2013 à 09:08
0
Merci
c'est une partie du code du fichier .bat

SET annee=%date:~6,4%
CALL :CONV_VAR_to_MAJ DB_NAME
echo.DB_NAME=[%1]

REM Création dossier Numéro de devis et désignation
MD %V_PATH%"%1\%date:~6,4%\%2\1- Dossier d'appel d'offre"
MD %V_PATH%"%1\%date:~6,4%\%2\2- Courrier\1- Client\Re‡u"
MD %V_PATH%"%1\%date:~6,4%\%2\2- Courrier\2- Fournisseur\Re‡u"
MD %V_PATH%"%1\%date:~6,4%\%2\2- Courrier\2- Fournisseur\Transmis"
MD %V_PATH%"%1\%date:~6,4%\%2\2- Courrier\3- Autres\Re‡u"
MD %V_PATH%"%1\%date:~6,4%\%2\2- Courrier\3- Autres\Transmis"


Camille
Commenter la réponse de ellimac60
NHenry 14273 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 16 octobre 2018 Dernière intervention - 24 juin 2013 à 12:58
0
Merci
Bonjour,

Je ne vois pas le rapport entre le code monté (BATCH, qui créé des dossiers) et la demande initiale.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Commenter la réponse de NHenry
ellimac60 - 24 juin 2013 à 13:28
0
Merci
ucfoutu m'a demandé de donner le code et la syntaxe qui marche du code en ligne de commande, donc j'ai donné le code source de mon fichier batch dans lequel les %1, %2 correspondent à mes variables, lorsque j'exécute ce fichier batch depuis la commande dos du style fichier.bat a b, les deux variables sont belles et bien remplacées par a et b. Ce que je cherche desespéremment à faire c'est simplement appeler mon .bat depuis VB6 par la commande Shell, la syntaxe que j'utilise est la suivante
Shell ("""C:\Documents and Settings\Camille.LOUSSAYRE\Mes documents\generer_devis.bat""" + " arg1 arg2 arg3")
ou encore
ShellExecute(Me.hwnd, "open", Path, Chr(34) & nomClient & Chr(32) & NumDevisDesignation & Chr(34), Path, 1)
cela fonctionne trés bien. Mon réel souci est de faire passer des variables comme argument, j'ai essayé
Shell ("""C:\Documents and Settings\Camille.LOUSSAYRE\Mes documents\generer_devis.bat""" + Chr(34) & nomClient & Chr(32) & NumDevisDesignation & Chr(34))
ou encore
Call ShellExecute(Me.hwnd, "open", Path, Chr(34) & nomClient & Chr(32) & NumDevisDesignation & Chr(34), Path, 1)
où nomClient et NumDevisDesignation sont des variables, mais cela ne fonctionne pas.

Camille
Commenter la réponse de ellimac60
ellimac60 - 24 juin 2013 à 13:30
0
Merci
Je précise bien que mon problème est de faire passer plusieurs variables, j'arrive à en faire passer une, mais pas deux ou trois....

merci d'avance


Camille
Commenter la réponse de ellimac60
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 24 juin 2013 à 17:25
0
Merci
Bis repetita, donc :
pour mémoire :
Quelle est la syntaxe qui "marche" de ce que tu écrirais directement en ligne de commande (sans VB, donc) ?

Ce que tu as montré n'est pas la réponse à cette question. Je ne t'ai jamais demandé le code de ton batch, mais ce que tu écrirais depuis la ligne de commande (démarrer ===>> exécuter ..... ?) pour l'exécuter convenablement. Cette syntaxe (celle de la ligne de commande) n'est pas du VB. La fonction
Shell (ça, oui, c'est du VB) lancera cette ligne de commande (encore faut-il connaître celle qui "marche" (et qui n'est pas du VB, elle).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
ellimac60 - 25 juin 2013 à 09:07
0
Merci
Je vois pas trop ou vous voulez en venir en me posant cette question. Sinon du menu démarrer, je fais exécuter cmd, je vais dans le répertoire ou se trouve mon fichier bat puis je l'appelle en lui passant en paramètre les arguments que je veux. Cela fonctionne très bien. Mais la fonction Shell fonctionne bien, il est pas la le problème. Mon problème c'est dans la syntaxe du VB6, ou je ne parviens pas à faire passer plus d'une VARIABLE en argument, en revanche j'arrive à faire passer plusieurs chaines de caractères....

Camille
Commenter la réponse de ellimac60
snif456 6 Messages postés mercredi 16 avril 2014Date d'inscription 29 avril 2014 Dernière intervention - 17 avril 2014 à 13:52
0
Merci
je voudrais connaitre la commande à parcourir or j'ai tout essayé mais cela n'a pas pu marché
Commenter la réponse de snif456
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 17 avril 2014 à 14:16
0
Merci
Bonjour, snif456,
Et tu as essayé quoi, dans ton "tout essayé" ? ===>> montre ce(s) code(s) d'essai.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.