C# - 没有窗口的程序

use*_*265 5 c# wpf command-line mainwindow

我想知道当我的程序以命令行参数启动时(即传递文件名时)是否可以"关闭"我的主窗口自动加载.我遇到的问题是我的程序在单击与之关联的文件时加载,但是通过打开另一个主窗口并使用它来执行此操作.我遇到的问题是该程序后来仍然启动MainWindow,从而打开两个Windows,一个包含文件内容,另一个包含空.

如何防止空白窗口?在我看来,我要么阻止它打开主窗口,关闭主窗口或让程序将文件传递给主窗口.我的问题是,我不知道哪些是最好的或如何做到这一点.

这是代码:

    protected override void OnStartup(StartupEventArgs e)
    {
        if (e.Args != null && e.Args.Count() > 0)
        {
            this.Properties["ArbitraryArgName"] = e.Args[0];
        }
        base.OnStartup(e);

        if (Application.Current.Properties["ArbitraryArgName"] != null)
        {

            string fname = Application.Current.Properties["ArbitraryArgName"].ToString();
            MainWindow mw = new MainWindow();
            mw.Show();
            mw.readVcard(fname);
            Application.Current.Windows.
        }
    }
Run Code Online (Sandbox Code Playgroud)

编辑:

我的解决方案在底部.

Jon*_*eet 6

我相信你可以用自己的Main方法添加一个单独的类,并将其设置为可执行文件的入口点.然后你可以在那里解析方法参数,或者调出主窗口.

(我假设这是一个WPF应用程序 - 它在WinForms应用程序中更简单,因为您可以直接修改原始Main方法.)


Qwe*_*tie 5

我假设你使用WPF?您需要替换WPF为您提供的入口点(Main).然后,您可以启动WPF,具体取决于命令行参数.有关详细信息,请参阅此问题:

替换WPF入口点