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