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.NET Discussion :

passage de parametre entre application


Sujet :

VB.NET

  1. #1
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut passage de parametre entre application
    bonjour,

    je voudrais passer des paramètres d'une application vers une autre.
    je développe sur du windows CE 5.


    lordque j'utilise le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            Dim proc As New System.Diagnostics.Process()
            proc.StartInfo.FileName = "\application\pickingstj.exe"
            proc.Start()
            proc.Close()
    ma 2ième application s'ouvre bien, par contre si j'essaye de rajouter un paramètre dans la ligne de commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            proc.StartInfo.FileName = "\application\pickingstj.exe" + Personne
    mon appel plante.

    quelqu'un a t'il une solution ?

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Il suffit de regarder l'exception que tu as lorsque ça "plante" (Win32Exception je dirais) et de lire la doc pour comprendre pourquoi ensuite

    Ceci n'est pas un nom de fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    proc.StartInfo.FileName = "\application\pickingstj.exe" + Personne
    Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim proc As New System.Diagnostics.Process()
    proc.StartInfo.FileName = "\application\pickingstj.exe"
    proc.StartInfo.Arguments = "mes arguments"
    proc.Start()
    proc.Close()
    Ou plus simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Diagnostics.Process.Start("\application\pickingstj.exe", "mes arguments")

  3. #3
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270

  4. #4
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    effectivement, ce code marche très bien, merci.

    par contre, comment récupérer cette valeur dans le programme appelé ?

    mon application est du Smart device, windows CE 5.0, et je n'ai pas de propriété paramètre sur la solution (je sais pas si je suis clair là).


    j'ai dans Déboguer => Arguments de la ligne de commande, ca pourrait m'aider ca ?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    C'est en paramètre de la méthode Main
    Sinon tu peux y accéder via Environment.GetCommandLineArgs

  6. #6
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    j'ai essayer de reprndre l'exemple suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Imports System
    Class Sample
       Public Shared Sub Main()
          Console.WriteLine()
          '  Invoke this sample with an arbitrary set of command line arguments.
          Dim arguments As [String]() = Environment.GetCommandLineArgs()
          Console.WriteLine("GetCommandLineArgs: {0}", [String].Join(", ", arguments))
       End Sub 'Main
    End Class 'Sample
    cependant, le compilateur n'aime pas
    Environment.GetCommandLineArgs
    , il me dit :
    'GetCommandLineArgs' n'est pas un membre de system.environment
    sinon, ca me parait bien comme info

  7. #7
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    je croyais l'avoir indiqué mais non, je développe en vb => smart device => windows ce 5

    c'est pour ca que je n'ai pas accès à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Environment.GetCommandLineArgs()
    je pense

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Effectivement, ça n'a pas l'air dispo sur le Compact Framework... bizarre d'ailleurs.
    Il reste donc le paramètre de la méthode Main...

  9. #9
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    c'est à dire ?
    c'est quoi le paramètre de la methode main ?

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par WBO Voir le message
    c'est à dire ?
    c'est quoi le paramètre de la methode main ?
    euh... ben tu sais ce que c'est que la méthode Main, non ?

    EDIT: ah oui, j'oublie toujours que par défaut en VB.NET on s'en sert pas... donc c'est possible en effet que tu connaisses pas
    http://plasserre.developpez.com/v4-1.htm
    Cherche dans cette page "Récupération de la ligne de commande"

    Et sur la même page, il mentionne aussi My.Application.CommandLineArgs

    RE-EDIT : en fait My.Application n'est pas disponible sur le Compact Framework :S

  11. #11
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    ca sent pas bon sur ce coup là !

    ca veut dire que je vais être marron avec le compact framework pour faire ca ?

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Non, il suffit que le point d'entrée de ton programme soit Sub Main, et non une Form (choix dans les propriétés du projet). Dans le Main :
    - Tu récupères les paramètres de ligne de commande (argument de la Sub)
    - Tu les stockes quelque part (membre statique d'une classe par exemple) pour t'en servir plus tard
    - Tu lances la form principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run(New Form1())

  13. #13
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    j'ai bien trouvé le point d'entré
    Sub Main
    dans les propriétés du projet, objet de démarrage.

    cependant, comment je fais pour créer ce
    Sub Main
    ?

    Il me met automatiquement,
    'Sub Main' est introuvable dans 'MenuPrincipal'
    ?

    alors j'ai créé un module Main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Module Main
        Sub main(ByVal parameter As String)
            MsgBox(parameter)
     
        End Sub
    End Module
    mais j'ai cette fois ci
    Aucune méthode 'Maijn' accessible avec une signature appropriée n'a été trouvée dans 'MenuPrincipal'
    une petite idée ?

  14. #14
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    ca avance,

    avec le code ci-dessous, ca marche, par contre, je ne sais toujours pas récupérer mes paramètres dans ma 2ième application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Module Main
        Public Sub main()
            MsgBox("dans le main")
            Dim form_new As New Form_Exit()
            form_new.ShowDialog()
        End Sub
    End Module

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    il suffisait de recopier le code sur la page que je t'ai indiqué ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function Main(ByVal CmdArgs() As String) As Integer
    ...
     
    Return 0
    End Function
    CmdArgs est un tableau qui contient les paramètres de ligne de commande

    Tu peux aussi faire une Sub plutôt qu'une Function :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Main(ByVal CmdArgs() As String)
    ...
     
    End Sub

  16. #16
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    avec le mode debug, mon programme passe.

    par contre, j'ai l'erreur
    IndexOutOfRangeException
    quand je l'execute via le .exe sur le tracker.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        Sub Main(ByVal args() As String)
            Try
                'MsgBox("dans le main")
                'Dim var0 As String
                'var0 = args(0)
                'MsgBox("apres arg")
                'MsgBox("var0 = " + var0)
                Dim form_new As New Form_Exit()
                form_new.ShowDialog()
            Catch ex As Exception
                'MsgBox("dans Exception" + ex.Message)
            End Try
        End Sub
    en fait, c'est le bait de mettre
    ByVal args() As String
    qui faiot que j'ai cette erreur.

    le problème, est que mes arguments se trouvent là !

  17. #17
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    euh... quelle instruction plante ? c'est dans le code qui est en commentaire ?

    Citation Envoyé par WBO Voir le message
    en fait, c'est le bait de mettre qui faiot que j'ai cette erreur.
    Ca m'étonnerait ... c'est plutôt la façon dont tu l'utilises
    L'index de tableau auquel tu accèdes doit être >= 0 et < args.Length
    Donc si tu as 0 arguments, ça va planter si tu essaies d'accéder à args(0)


    Citation Envoyé par WBO Voir le message
    le problème, est que mes arguments se trouvent là !
    Tu es sûr qu'ils y sont ? Comment tu les as passés au programme exactement ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/06/2006, 21h45
  2. Passage de parametre entre deux formulaires
    Par Rcanada dans le forum Access
    Réponses: 3
    Dernier message: 28/04/2006, 11h05
  3. [C#] Passage de paramètre entre forms
    Par farfadet dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/02/2006, 14h36
  4. passage de parametre entre deux page asp
    Par tomtom25 dans le forum ASP
    Réponses: 4
    Dernier message: 01/04/2005, 16h16
  5. sql dynamic : passage de parametre entre quotes
    Par de LANFRANCHI dans le forum SQL
    Réponses: 12
    Dernier message: 26/05/2004, 15h09

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