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

Windows Forms Discussion :

intégrer une autre application au sein de la sienne


Sujet :

Windows Forms

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 141
    Par défaut intégrer une autre application au sein de la sienne
    Bonjour,

    Je voudrais savoir s'il est possible d'intégrer un exe dans l'application courante et ainsi masqué l'éxécutable.

    Plus précisément, dans mon cas, je voudrais lancer une commande windows depuis mon appli (genre "rsync fichierSource fichierDest"). Cependant, j'aimerais bien que l'utilisateur puisse voir la fenêtre d'invite de commande.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Par défaut
    bonjour,
    Est-ce que cet exemple peut t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void StartProcess()
    {
        // Instance de la classe Process
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        // Nom de l'executable à lancer
        proc.StartInfo.FileName = "iexplore.exe";
        // Arguments à passer à l'exécutable à lancer
        proc.StartInfo.Arguments="http://www.developpez.com";
        // Démarrage du processus
        proc.Start() ;
        // On libère les ressources dont on n'a plus besoin.
        proc.Close(); // Attention Close ne met pas fin au processus.
    }
    en remplacant le nom de l'exe et des arguments

    (source Faq Dvp http://faqcsharp.developpez.com/?pag...syst_procstart)

    bon dev

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 141
    Par défaut Ca marche mais maintenant...
    Merci! Ca m'a bien aider pour les arguments

    Il reste un problème maintenant, je veux que l'utilisateur ne vois pas l'invite de commande. J'ai essayer avec proc.CloseMainWindows(). La fenêtre disparaît bien
    mais on a quand même le temps de l'apercevoir. Comment lui dire de ne pas du tout lancer la fenêtre?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Par défaut
    Essaye avec les paramètres CreateNoWindow ou WindowStyle de la classe ProcessStartInfo à passer lors du Process.Start().

  5. #5
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Y a pas moyen d'utiliser un exécutable qui a été ajouté aux ressources du projet ?
    Si c'est le cas, ça m'intéresserait de savoir comment le lancer.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Par défaut
    Si tu veux exécuter une application incorporée à un autre exécutable (dans les ressources par exemple), il faut que tu l'extraies sur le disque dur (dans un répertoire temporaire par exemple) et puis que tu la lances avec Process.Start().
    Si tu ne veux pas l'extraire sur le disque dur, il te faudra refaire tout le travail du loader du système d'exploitation (N'y pense même pas en C# )

    Exemple de code pour extraire un fichier en ressource sur le disque dur :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    File.WriteAllText("login.xml", Properties.Resources.login);
    Ceci dit, je ne suis pas certain que cette fonction puisse convenir pour un fichier exécutable car, à mon avis, elle reformatte le texte.
    Il faudrait donc trouver une fonction qui permet d'écrire en binaire...

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

Discussions similaires

  1. [1.x] Intégrer une vue d'une autre application
    Par thunderfear dans le forum Symfony
    Réponses: 3
    Dernier message: 25/02/2011, 10h08
  2. Réponses: 4
    Dernier message: 25/07/2005, 14h24
  3. Mettre en avant plan une autre application...
    Par loupdeau dans le forum MFC
    Réponses: 13
    Dernier message: 19/05/2005, 13h26
  4. Réponses: 7
    Dernier message: 23/03/2005, 22h23
  5. Recuper les items de ListBox d'une autre application [API?]
    Par Shamanisator dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h32

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