【问题标题】:C# - Is it possible to create a Windows Forms application that can run from the command line with parameters?C# - 是否可以创建一个可以使用参数从命令行运行的 Windows 窗体应用程序?
【发布时间】:2009-10-05 18:19:22
【问题描述】:

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

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

【问题讨论】:

    标签: c# winforms command-line


    【解决方案1】:

    如果您更改此默认主签名:

    [STAThread]
    static void Main()
    

    到这里:

    [STAThread]
    static void Main(String[] args)
    

    您可以像从普通控制台应用程序一样访问命令行变量,或者如果您想从其他地方访问它们,您可以使用:

    System.Environment.GetCommandLineArgs();
    

    【讨论】:

    • 哈,第一种方法是我不久前向朋友解释时使用的方法。 +1
    【解决方案2】:
    [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));
        }
    }

    【讨论】:

    • +1 用于回答问题的第二部分。您在 WriteLine( 末尾缺少一个括号。另外,我认为您不能像在 Windows 窗体应用程序中那样写入控制台。
    • 你是对的,你不能 Console.WriteLine 到 Winforms 应用程序。我的回答是,您不需要创建 Windforms 应用程序,您可以创建一个可执行文件,该可执行文件将作为表单或命令行运行,具体取决于调用方式。
    • 我刚刚对此进行了测试,没有为文本打开命令窗口,我认为它缺少启动命令行窗口的命令。
    • @Eric,不错的选择;连接到 StdOut 的示例是 hereConsole.WriteLine 可能是这么短的 sn-p 的一个坏例子。
    【解决方案3】:

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2011-12-08
        • 2013-11-26
        • 2022-01-18
        • 2013-03-02
        • 2020-03-03
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多