.Net控制台应用程序无法启动控制台

时间:2009-06-01 13:50:19

标签: c# .net vb.net console console-application

我有一个控制台应用程序,我用它来通过Windows调度程序运行预定作业。与应用程序之间的所有通信都在电子邮件,事件记录,数据库日志中。有什么方法可以抑制控制台窗口出现吗?

6 个答案:

答案 0 :(得分:45)

不确定。将其构建为winforms应用程序,永远不会显示您的表单。

请注意,因为它不再是一个真正的控制台应用程序,并且在某些环境中你将无法使用它。

答案 1 :(得分:10)

借鉴MSDN(link text):

using System.Runtime.InteropServices;

...
      [DllImport("user32.dll")]
      public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);

      [DllImport("user32.dll")]
      static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

...

         //Sometimes System.Windows.Forms.Application.ExecutablePath works for the caption depending on the system you are running under.
         IntPtr hWnd = FindWindow(null, "Your console windows caption"); //put your console window caption here
         if(hWnd != IntPtr.Zero)
         {
            //Hide the window
            ShowWindow(hWnd, 0); // 0 = SW_HIDE
         }


         if(hWnd != IntPtr.Zero)
         {
            //Show window again
            ShowWindow(hWnd, 1); //1 = SW_SHOWNORMA
         }

答案 2 :(得分:2)

这是一个黑客,但以下博客文章描述了如何隐藏控制台窗口:

http://expsharing.blogspot.com/2008/03/hideshow-console-window-in-net-black.html

答案 3 :(得分:2)

将任务计划为以与您的帐户不同的用户身份运行,并且您不会弹出一个窗口。 。

答案 4 :(得分:2)

只需将计划任务配置为"运行用户是否已登录"。

答案 5 :(得分:1)

为什么不将应用程序设为Windows服务?