我写了一个桌面应用程序,想让它既可以双击运行又支持命令行方式运行于是我改写了下Main函数如下:
static void Main(string[] args) 
{
if (args.Length == 0)
{
Application.Run(new PrintView());
}
else
{
System.Console.WriteLine("hello");
}
}这样的话,双击没有问题,但在DOS下却打印不出信息,有人知道如何解决吗?

解决方案 »

  1.   

    Dos下 要用控制台应用程序
      

  2.   

    如果是桌面程序而不是控制台程序,那么用
    System.Console.WriteLine("hello");
    是不会在那个"DOS"窗口中显示信息的.只有控制台程序可以在DOS窗口里显示内容.
      

  3.   

    嘿,楼主,我不是说了吗?
    你如果是建立的桌面应用程序,那么用System.Console是不会在DOS的窗口中显示信息的,
    除非你建立控制台程序才可以.
      

  4.   

    hbxtlhx你好我已经知道桌面应用程序用System.Console是不能打印信息的。
    我现在想知道的是原因,或者怎样才能做一个程序,即有画面(双击运行)又可以命令行运行(打印信息),我想寻求一个解决解决的途径。
      

  5.   

    在控制台应用程序中其实是可以建立Form窗体并可以使用Application.Run来运行程序的.所以你新建立一个控制台程序,在这个程序里添加窗体并用Application.Run来运行这个程序就可以了.或者你直接把你的桌面程序在项目属性里直接改成控制台项目就可以了.
      

  6.   

    嗯,刚才试过后一种方法“或者你直接把你的桌面程序在项目属性里直接改成控制台项目就可以了.”是可以达到效果,只是双击运行的时候会出来两个窗口,一个程序窗口和Console窗口
      

  7.   

    qyl2008() 你好,能说的再详细些吗?
      

  8.   

    双击运行部分不用改动,命令行方式的实现可以用process来启动一个新进程,该进程中运行控制台程序process的使用类似于下面的代码
                               Process   p   =   new   Process();      
    p.StartInfo.FileName   =   "cmd.exe";       
    p.StartInfo.UseShellExecute   =   false;      
    p.StartInfo.RedirectStandardInput   =   true;       
    p.StartInfo.RedirectStandardOutput   =   true;      
    p.StartInfo.RedirectStandardError   =   true;       
    p.StartInfo.CreateNoWindow   =   true;  
    p.Start(); 
    p.StandardInput.WriteLine(cmdText);       
    p.StandardInput.WriteLine("exit"); 
    while(!p.HasExited)
    {
    p.WaitForExit();
    }
    p.Close();    
      
    你照着上面的例子再改一下试试吧