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

VB 6 et antérieur Discussion :

[vb6] commande shell avec un .msi


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Par défaut [vb6] commande shell avec un .msi
    Bonjour,

    Dans mon appli vb6, je souhaite lancer un .msi qui se trouve dasn un chemin construit dynamiquement.
    J'ai mis le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MonPath= chemin & "\programme.msi"
     ShellOk = Shell(""" & MonPath & """, vbMinimizedNoFocus)
      DoEvents
      Do While ShellOk = 0
      Loop
    Mais cela ne fonctionne pas. "MonPath" donnant un bon chemin
    Est qu'il faut bien utiliser Shell pour un .msi?
    Si oui quelle est mon erreur ? (j'ai mis 3 guillemets pour gérer les espaces dans le chemin)

    Merci d'avance

  2. #2
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Et en mettant :

    ShellOk = Shell(MonPath, vbMinimizedNoFocus)

    Ca marcherait pas mieux ?

    Je ne comprends pas non plus ta boucle, ShellOK va te renvoyer l'identificateur du programme que tu lances, il ne va pas repasser miraculeusement à 0 ensuite.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Par défaut
    Et en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellOk = Shell(MonPath, vbMinimizedNoFocus)
    J'ai l'erreur
    Invalid procedure call or argument
    Quand à ma boucle, c'est pour "boucler" jusqu'à que le programme soit installé.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    apprenons à pêcher...

    Si l'on ouvre la BDR et que l'on recherche ".msi", on découvre que ce type d'extension correspond aux fichiers Msi.package...
    Bien.

    Si l'on recommence l'opération sur ce dernier mot, on arrive à une clef qui nous montre comment ouvrir de tels fichiers ...
    Elle nous dit ceci :

    "%SystemRoot%\System32\msiexec.exe" /i "%1" %*
    Ce qui veut dire ceci :

    1) soit on utilise Shell et il ne suffit pas de se référer au fichier à exécuter, mais également au chemin de l'appli qui en permet l'exécution

    2) soit on utilise ShellExecute (Api de Windows) qui, elle, est fort capable de se débrouiller abec la seule extension .msi, sans lui indiquer quelle est l'application nécessaire...

    Pour continuer avec cette philosophie de recherche, je te conseille de faire une toute petite recherche (y compris sur ce forum) en ce qui concerne l'utilisation de la Fonction ShellExecute de l'Api de Windows...

    Edit (et avant cris éventuels) : ce n'est pas un "sarcasme", non ... c'est bien au contraire de la vraie générosité : celle de la mise du pied à l'étrier ...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 94
    Par défaut
    Merci

    En choisissant Shell et d'apres tes propos j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    test = "c:\windows\System32\msiexec.exe /I " & MaPath & " /passive"
      ShellOk = Shell(test, vbMinimizedNoFocus)
    Cela ne plante plus, mais cela ne m'a pas installer le programme voulu (alors que si je lance le msi en double cliquant ce la fonctionne)
    De plus j'onbtiens une fenetre Window Installer avec les options.

    Est-ce que j'ai raté quelque chose ?

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Citation Envoyé par sun19 Voir le message
    Est-ce que j'ai raté quelque chose ?
    Probablement l'option silencieuse si elle existe pour ce .msi. Qu'en dit l'aide ?

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Fais tes essais depuis la ligne de commande (démarrer ===>> exécuter)

    - sans te préoccuper pour l'instant de la fenêtre
    - en essayant également sans le paramètre i

Discussions similaires

  1. VBA & commande Shell avec paramètres
    Par lgab3 dans le forum VBA Access
    Réponses: 6
    Dernier message: 26/11/2009, 13h14
  2. Exécution de commandes SHELL avec SharpSSH
    Par belaidw dans le forum Services Web
    Réponses: 0
    Dernier message: 29/09/2009, 05h00
  3. commande shell avec Popen : problème d'accent
    Par cyrull dans le forum Général Python
    Réponses: 3
    Dernier message: 04/03/2009, 23h49
  4. commande shell avec gestion des erreurs
    Par nymus7 dans le forum Programmation et administration système
    Réponses: 0
    Dernier message: 06/08/2008, 13h59

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