将命令行选项添加到我的WPF应用程序

时间:2015-08-17 16:01:30

标签: wpf command-line

我想在我的command line应用程序中添加WPF个选项但是如果命令行被发送到我的EXE file我不希望UI打开但只有命令行选项。 有可能做这样的事吗?

public partial class MainWindow : MetroWindow
{
    public MainWindow()
    {
        string[] args = Environment.GetCommandLineArgs();
        if (args.Length > 1)
        {
            this.Hide();
            ParseArgs(args);
        }
        else
        {
            InitializeComponent();
        }
    }

    private void ParseArgs(string[] args)
    {
        // bla bla
    }
}

2 个答案:

答案 0 :(得分:0)

这个Replacing WPF entry point就是您想要做的。

在那里,您可以获取命令行参数,并决定是否要显示主窗口。

如果在运行应用程序时需要编写命令行中显示的输出,则需要执行this之类的操作:

右键单击项目,"属性","应用程序"选项卡,更改"输出类型"到"控制台应用程序",然后它还将有一个控制台。

但是,一旦执行此操作,即使您不是从命令行启动应用程序,也会弹出一个控制台窗口。没有办法同时使用它 - 应用程序是可以启动窗口的命令行应用程序,或者它是一个窗口应用程序,它无法写入启动它的控制台。这是Windows中的限制 - 决定它位于PE头中的位。

此问题讨论了这一点in great detail, and offers several hacks to achieve what you want.

您可能想要实际搜索您的问题,因为我已经计算了至少5个专门针对此(新)主题的SO问题。

答案 1 :(得分:0)

您应该在app.xaml中执行此操作。

我解释说:

您放置了一个应用程序启动方法处理程序(而不是使用启动uri)。在这里,您可以解析cl参数,然后设置StartupUri = MainWindow.xaml,它将打开您的窗口。如果你不打开主窗口,那么你就不会设置启动uri。