Да, вы можете сделать это.
Создайте приложение Windows Forms и добавьте компонент NotifyIcon .
Затем используйте следующие методы ( найдено в MSDN ), чтобы выделить и отобразить консоль
[DllImport("kernel32.dll")]
public static extern Boolean AllocConsole();
[DllImport("kernel32.dll")]
public static extern Boolean FreeConsole();
[DllImport("kernel32.dll")]
public static extern Boolean AttachConsole(Int32 ProcessId);
Когда ваша консоль находится на экране, удерживайте нажатой кнопку свертывания и используйте ее, чтобы скрыть окно консоли и обновить значок уведомления. Вы можете найти свое окно, используя следующие методы ( найдено в MSDN ):
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
// Find window by Caption only. Note you must pass IntPtr.Zero as the first parameter.
// Also consider whether you're being lazy or not.
[DllImport("user32.dll", EntryPoint="FindWindow", SetLastError = true)]
static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);
Обязательно вызывайте FreeConsole, когда будете готовы закрыть приложение.