WPF 无法读取传递的参数

问题描述

我试图在 WPF 中获取命令行参数,但它总是返回 []。很奇怪我什至尝试通过 cmd 发送参数但没有成功

    private void Application_Startup(object sender,StartupEventArgs e)
    {
        MessageBox.Show(e.Args.ToString()); // returns Empty Array
        MessageBox.Show(Environment.GetCommandLineArgs().ToString()); // returns Empty Array

        if (e.Args.Length == 1 && e.Args[0] == "INSTALLER")
        {
            return;
        }

        // Create main application window,starting minimized if specified
        MainWindow mainWindow = new MainWindow();
        mainWindow.WindowState = WindowState.Maximized;
        mainWindow.Show();
    }

这就是我在 CustomAction 中传递参数的方式::

enter image description here

#Edit:: 我正在使用简单的 VisualStudio 安装程序,生成 MSI 文件我想在安装后使用一些参数运行应用

解决方法

您可以覆盖 App.cs 中的 OnStartup 方法,该方法将 <script> var isPhoneDevice = "ontouchstart" in document.documentElement; $(document).ready(function() { if(isPhoneDevice){ //mobile } else{ $(document).ready(function(){ $('#fullpage').fullpage(); responsive: 700 // here is solution }) } }); </script> 作为参数。 然后使用 StartupEventArgs 获取命令行参数,如下所示:

startupEventArgs.Args

如果您只是将 protected override void OnStartup(StartupEventArgs startupEventArgs) { MessageBox.Show(startupEventArgs.Args[0].ToString()); } 打印到 Messagebox,它将打印 startupEventArgs.Args.ToString()。这只是数组的数据类型,但这并不意味着它是空的。尝试使用索引访问它或打印 System.String[]