Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-是否可以创建一个Windows窗体应用程序,该应用程序可以使用参数从命令行运行?_C#_Winforms_Command Line - Fatal编程技术网

C#-是否可以创建一个Windows窗体应用程序,该应用程序可以使用参数从命令行运行?

C#-是否可以创建一个Windows窗体应用程序,该应用程序可以使用参数从命令行运行?,c#,winforms,command-line,C#,Winforms,Command Line,我想要一个包含UI的Windows窗体应用程序,但我希望它在命令行中运行时带有一些参数,可能还有一个/hide或/visible=false选项 如何读取命令行参数?并进行相应调整?如果更改此默认主签名,请使用: [STAThread] static void Main() 为此: [STAThread] static void Main(String[] args) 您可以像从普通控制台应用程序一样访问命令行变量,或者如果您想从其他地方访问它们,可以使用: System.Environme

我想要一个包含UI的Windows窗体应用程序,但我希望它在命令行中运行时带有一些参数,可能还有一个
/hide
/visible=false
选项


如何读取命令行参数?并进行相应调整?

如果更改此默认主签名,请使用:

[STAThread]
static void Main()
为此:

[STAThread]
static void Main(String[] args)
您可以像从普通控制台应用程序一样访问命令行变量,或者如果您想从其他地方访问它们,可以使用:

System.Environment.GetCommandLineArgs();

是的,它可以将项目创建为普通windows应用程序项目。然后在program.cs中,在启动窗口之前,调用
Environment.GetCommandLineArgs()
,获取命令行参数并解析它们以执行所需操作。

Hah,第一种方法就是我不久前在给朋友的解释中使用的方法+1+1回答问题的第二部分。WriteLine末尾缺少一个括号(.此外,我认为你不能像在windows窗体应用程序中那样写入控制台。你是对的,你不能将console.WriteLine写入Winforms应用程序。我的回答是,你不需要创建Windforms应用程序,你可以创建一个可执行文件,它将作为窗体或命令行运行,具体取决于调用方式。我刚刚测试了t他没有为文本打开commandwindow,我认为它缺少启动comamndline窗口的命令。@Eric,很好的捕获;连接到StdOut的一个示例是。
Console.WriteLine对于这样一个短的代码片段来说可能是一个不好的示例。
[STAThread]
static void Main(string[] args)
{
    if (args.Length == 0)
    {
        // Run the application in a windows form
        Application.Run(new MainForm( ));
    }
    else
    {
        // Run app from CLI
        Console.WriteLine(DoStuff(args));
    }
}