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

Visual Studio Discussion :

Pb avec Process.Start avec Vb.Net


Sujet :

Visual Studio

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 80
    Par défaut Pb avec Process.Start avec Vb.Net
    Je suis sur VisualStudio 2019 et vb.net.

    J'utilise la commande process pour exécuter un exécutable.
    j'obtiens une erreur « D:\My Prog n'est pas reconnue comme une commande interne. »
    L'erreur vient du fait que mon exécutable se trouve dans « D:\My progs\Cleaner2023\Bin»
    Si quelqu'un sait comment faire accepter mon répertoire merci.
    Ci-dessous les fonctions appelantes:

    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
     
        Private Sub Clean_Click(sender As Object, e As EventArgs) Handles Clean.Click ' Nettoie les fichiers temporaires de Windows 11
            Me.Hide() : MyUtilities.RunCommandCom(Application.StartupPath.ToString + "\Clean.exe", "", True) : Me.Visible = True
        End Sub
     
        Public Class MyUtilities
            Shared Sub RunCommandCom(command As String, arguments As String, permanent As Boolean)
                Try
                    Dim p As New Process()
                    Dim pi As New ProcessStartInfo With {
                        .Arguments = " " + If(permanent = True, "/K", "/C") + " " + command + " " + arguments,
                        .FileName = "cmd.exe"
                    }
                    p.StartInfo = pi
                    p.StartInfo.Verb = "runas"
                    p.Start()
                    p.Close()
                Catch Ex As Exception
                    Dim unused = MsgBox(Ex.Message)
                End Try
            End Sub
        End Class

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 921
    Par défaut
    Déjà il faut passer ton chemin entre quotes sinon, l'espace dans ton chemin sera considéré comme celui séparant le chemin et les paramètres.
    Sans les quotes tu lance le programme "D:\My.exe" en lui fournissant un paramètre "progs\Cleaner2023\Bin"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 80
    Par défaut Ok ça je l'avais compris
    Citation Envoyé par popo Voir le message
    Déjà il faut passer ton chemin entre quotes sinon, l'espace dans ton chemin sera considéré comme celui séparant le chemin et les paramètres.
    Sans les quotes tu lance le programme "D:\My.exe" en lui fournissant un paramètre "progs\Cleaner2023\Bin"
    -------------------------------------------------------------------------------------------------------------------------------------------
    Bien sûr qu'il faut passer mon chemin entre quotes. Après de multiples combinaisons essayées. je sèche.
    Si tu as ma réponse en rapport avec ma programmation. Merci de me la donner.

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 921
    Par défaut
    Citation Envoyé par Paounet Voir le message
    -------------------------------------------------------------------------------------------------------------------------------------------
    Bien sûr qu'il faut passer mon chemin entre quotes. Après de multiples combinaisons essayées. je sèche.
    Si tu as ma réponse en rapport avec ma programmation. Merci de me la donner.
    Je n'ai pas la faculté d'aller lire dans ta tête.
    Je t'ai donc donné une réponse en me basant sur les données que tu as fourni.

    Avec ton code, j'ai constaté deux anomalies.

    J'ai commencé par celle qui saute aux yeux, ton chemin comporte des espaces.
    Tu trouveras de nombreux exemples sur le net sur le sujet et en particulier, celle fourni officiellement par Microsoft.
    https://learn.microsoft.com/en-us/do...tframework-4.8

    Ensuite, tu lances CMD.exe pour lancer Clean.exe...
    Pourquoi ne pas lancer Clean.exe directement ?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 503
    Par défaut
    Je pense que ce qui n'est pas compris, c'est qu'il faut que la chaine contiennent réellement des guillemets dans le noms du chemin (en plus des guillemets obligatoires pour indiquer que c'est une chaine)
    pour qu'au final on obtienne """D:\My progs\Cleaner2023\Bin\Clean.exe"""donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyUtilities.RunCommandCom("""" + Application.StartupPath.ToString + "\Clean.exe""", "", True)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/11/2008, 20h54
  2. [VB.NET 1.1] Ping silencieux avec Process.Start()
    Par toniolol dans le forum Windows Forms
    Réponses: 6
    Dernier message: 30/09/2008, 13h35
  3. Process.start avec un processus père
    Par DranDane dans le forum C#
    Réponses: 2
    Dernier message: 24/09/2008, 14h02
  4. Réponses: 4
    Dernier message: 02/04/2008, 15h19
  5. Probleme avec Process.Start
    Par lucyole dans le forum VB.NET
    Réponses: 4
    Dernier message: 03/01/2008, 18h42

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