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

C# Discussion :

Executer un programme externe en mode GUI


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 14
    Par défaut Executer un programme externe en mode GUI
    Je cherche a lancer un programme Externe (.exe) à partir d'un dll que j'ai créée.

    je viens de faire quelques tests, si je créé un projet "Windows application" et que dans ma Form je place un bouton sur lequel j'attache le code suivant: Process.Start("notepad") sur l'evenenement "click";
    en cliquant sur mon bouton lorsque je lance l'appli, Notepad se lance correctement en mode GUI et je peux utiliser notepad pour saisir du texte.
    Maintenant je copie le meme code dans ma dll et lorsque elle est executée Notepad se lance mais il est seulement visible dans le Task Manager et pas d'acces possible a notepad.

    Comment est ce que je pourrai faire pour que notepad ou un .exe soit en mode GUI comme dans mon premier test ?
    Malgres mes recherches sur plusieurs forums dont celui-ci je n'ai pas trouvé de solution. Toutes celles trouvées lance le programme comme un service sans laisser la possibilité a l'utilisateur d'interagir.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Si tu commencais par nous montrer le code que tu utilises pour lancer Notepad ?

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 14
    Par défaut
    Bonjour,
    Voila le premier test qui fonctionne car c'est une WindowsApplication.
    Notepad se lance sans problème et je peux taper du texte dans celui-ci.
    **************************
    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
    23
    24
    25
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Diagnostics;
     
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                Process.Start("notepad");
            }
        }
    }
    **************************

    Et là la classe qui me genere une DLL avec laquelle je lance mon .exe lors d'un evenement (J'ai volontairement supprimer la déclaration des propriétés pour limiter de trop scroller sur le forum
    **********************
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    using System;
    using System.Collections.Generic;
    using System.Text;
    using Metastorm.Engine.Interface;
    using Metastorm.ProcessEvents.CodeBehindSupport;
    using System.Diagnostics;
     
    namespace Metastorm.ProcessEvents.Schneider_chr32_Process
    {
        // The dll file will need publishing to an Engine machine
        // at one of the following locations:
        // C:\Program Files\Metastorm BPM\Engine\dotnetbin
        // C:\Program Files\Metastorm BPM\Engine\dotnetlib
        public partial class Schneider_chr32_Process
        {
     
            #region properties
           // supression des propriétes pour simplifier la lecture dans le forum
            #endregion
     
            public Schneider_chr32_Process()
            {
                InitializeComponent();
                currentVersion = 2;
                //   Set warn mode for version conflicts
                //   WarnOnError
                //   StopOnError
                warnMode = WarningStatus.WarnOnError;
            }
     
            public bool ActionAction2FromStageRF_chr32_ReceiptWhenActionStarted()
            {
                Process.Start("notepad");
                return true;
            }
        }
    }
    **********************
    voila les deux versions
    j'aimerai avoir le comportement de la première solution dans la deuxieme c'est a dire pouvoir avoir accés à notepad pour par exemple y taper du texte.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Heu là, c'est très étrange, je ne vois pas pourquoi le processus n'apparait pas avec sa fenêtre

    Tu es sur que la méthode ActionAction2FromStageRF_chr32_ReceiptWhenActionStarted est bien déclenchée ?

  5. #5
    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
    Par défaut
    c'est pas très lisible sans

  6. #6
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 14
    Par défaut
    merci Smyley pour le tuyau

    Oui le programme passe bien par mon evenement et lance notepad en tache de fond.

Discussions similaires

  1. [C#] Comment executer un programme externe ?
    Par Worldofdada dans le forum C#
    Réponses: 7
    Dernier message: 11/02/2009, 14h36
  2. [Système] execution des programmes externes
    Par jadoo dans le forum Langage
    Réponses: 2
    Dernier message: 06/11/2006, 16h55
  3. Exécuter un programme externe et détecter sa terminaison
    Par leserapheen dans le forum Pascal
    Réponses: 10
    Dernier message: 04/10/2006, 17h19
  4. [VB6]Executer un programme externe et récuperer les sorties
    Par agro dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 29/03/2006, 13h08
  5. [Système] Executer un programme externe depuis un scripte php
    Par Scorpion Rouge dans le forum Langage
    Réponses: 1
    Dernier message: 24/01/2006, 11h59

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