问题描述
我试图在 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 中传递参数的方式::
#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[]