Au sein d’un projet WinForm pur, si l’application est lancée à partir d’une console (cmd), Console.Out n’écrira pas sur cette dernière pour la raison suivante:
la fenêtre de console est contenu dans le processus « cmd.exe », ce dernier instancie l’application dans un nouveau processus indépendant.
Pour lier l’application à la console appelante, nous devons faire coopérer notre application avec la console parent.
Pour ce faire, nous allons utiliser les fonctions COM du systèmes d’exploitation.
Lien MSDN:
http://msdn2.microsoft.com/en-us/library/ms682073.aspx
Exemple de mise en place:
//AttachConsole nous permettra de d'attacher un processus console au processus courant. //FreeConsole nous permettra de les détacher. [DllImport("kernel32.dll")] static extern bool AttachConsole( int dwProcessId); const int PARENT_PROCESS=-1; [STAThread] static void Main(string[] args) { AttachConsole(PARENT_PROCESS); }
Src:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/attachconsole.asp