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 :

[C# .NET 2.0]Forcer une fenêtre à être cachée


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Par défaut [C# .NET 2.0]Forcer une fenêtre à être cachée
    Bonjour, voila mon problème :
    Dans mon appli, je lance un processus qui ouvre une fenetre dos, et j'aimerai que cette fenêtre n'apparaisse pas (c'est pas choli et en plus y'en a plein...).
    Voila le code que j'ai qui réalise l'execution d'un processus :
    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
    Process proc = new Process();
    proc.StartInfo.FileName = "CScript.exe";
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.RedirectStandardOutput = true;
    [...]            
    foreach ([...])
        {
             try
             {   
                 [...]
                 proc.StartInfo.Arguments = "Convertisseur.js \"" + projetAconv + "\"";
             proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                 proc.Start();
                 output = proc.StandardOutput.ReadToEnd();
                 mForm.BeginInvoke(UTBD, new Object[] { output });
                 proc.Close();
                            
               }
    [...]
    Malgré la partie de code que j'ai mis en gras, la fenetre apparait...
    J'ai ce problème suite à une modification : Dans une précédente version, je ne redirigeait pas la sortie standard et alors la fenetre n'apparaissait pas, mais depuis que je redirige la sortie standard, y'a pu moyen de la rendre cachée...

    Merci pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    Aller je vais t'aider...

    Il faut que tu utilises la Fonction ShoWindow de user32.dll
    Pour cela rien de plus simple

    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
    using System;
    using System.Runtime.InteropServices;
     
    namespace ConsoleApplication1
    {
    	/// <summary>
    	/// Summary description for Class1.
    	/// </summary>
    	class Class1
    	{
    		const int SW_SHOW = 5;
    		const int SW_HIDE = 0;
     
    		[DllImport("user32.dll")]
    		static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
     
    		/// <summary>
    		/// The main entry point for the application.
    		/// </summary>
    		[STAThread]
    		static void Main(string[] args)
    		{
    			//
    			// TODO: Add code to start application here
    			//
     
    			//avec ton Process objprocess
    			ShowWindow(objprocess.MainWindowHandle, SW_SHOW);
    			ShowWindow(objprocess.MainWindowHandle, SW_HIDE);			
    		}
    	}
    }
    Voilà ça peut servir pour les autres...

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/10/2008, 22h17
  2. Forcer une fenêtre à se rafraichir
    Par benj00 dans le forum MFC
    Réponses: 2
    Dernier message: 02/09/2008, 15h34
  3. Forcer une fenêtre à rester en premier plan
    Par ValyGator dans le forum Windows
    Réponses: 2
    Dernier message: 20/01/2008, 11h11
  4. TrayIcon => forcer une JFrame à être visible
    Par tomy4ever dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 13/11/2006, 18h25

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