WPF 应用程序命令行参数而不是启动 GUI

问题描述 投票:0回答:2

我有 WPF 应用程序,我想添加在命令行上执行操作的选项,而不是打开 GUI。

有没有办法在我的应用程序中获取命令行参数,并且万一有参数继续而不打开 GUI?

wpf command-line
2个回答
3
投票

您可以编辑

App.xaml.cs
文件并覆盖
OnStartup
方法:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        string[] args = e.Args;
        if(args.Length > 0 && args[0] == "cl")
        {
            //...
        }
        else
        {
            base.OnStartup(e);
            Window2 mainWindow = new Window2();
            mainWindow.Show();
        }
    }
}

您还应该从

StartupUri
文件的
<Application>
根元素中删除
App.xaml
属性。

但是如果您希望能够写入控制台,则需要手动创建控制台窗口:

WPF 应用程序没有输出到控制台?

然后您不妨在 Visual Studio 中创建一个控制台应用程序,然后根据命令行参数启动 WPF 应用程序,例如:

public class Program
{
    public static void Main(string[] args)
    {
        if (args.Length == 0 || args[0] != "cl")
        {
            System.Diagnostics.Process.Start(@"c:\yourWpfApp.exe");
        }
        else
        {
            //...
        }
    }
}

控制台应用程序不是 WPF 应用程序,反之亦然。因此,创建两个不同的应用程序。


1
投票

在您的

App.xaml.cs
中实现
OnStartup
方法。因此您可以访问通过命令行传递的参数。

protected override void OnStartup(StartupEventArgs e)
{
    var args = e.Args;
    // do anything with arguments
}
© www.soinside.com 2019 - 2024. All rights reserved.