C# 使用参数启动WPF应用程序
我正在尝试实现一种方法,通过Windows任务调度和CMD使用特定参数启动WPF应用程序。我在下面添加了代码C# 使用参数启动WPF应用程序,c#,wpf,arguments,scheduled-tasks,startup,C#,Wpf,Arguments,Scheduled Tasks,Startup,我正在尝试实现一种方法,通过Windows任务调度和CMD使用特定参数启动WPF应用程序。我在下面添加了代码 protected override void OnStartup(StartupEventArgs e) { Logger.Info(e.Args.Length); for (int i = 0; i != e.Args.Length; ++i) { if (e.
protected override void OnStartup(StartupEventArgs e)
{
Logger.Info(e.Args.Length);
for (int i = 0; i != e.Args.Length; ++i)
{
if (e.Args[i] == "test")
{
Logger.Info($"G");
}
else
{
Logger.Info($"B");
}
}
}
当我开始发布应用程序并通过CMD启动它或在带有参数的任务调度中调度它时,e.Args.Length
为0。但是,当我在Properties>Debug>命令行参数中添加参数时,它确实起作用。
知道我遗漏了什么吗?要使用命令参数运行应用程序表单cmd,请使用以下格式-
C:\StackOverflow\Bin\Debug> StackOverflow.exe arg1 arg2
您需要在System
命名空间中使用Environment
类,并使用GetCommandLineArgs()
方法检索参数
比如说,
Args = Environment.GetCommandLineArgs();
根据问题的评论,我假设问题在于起始参数传递错误。ClickOnce应用程序的工作方式与.exe文件类似,由于安全原因,无法使用CMD中的参数启动
()
我建议您看看,它很好地描述了如何通过查询字符串将参数传递给应用程序。这是您正在寻找的@GK吗?我已经尝试过了,但也有同样的问题看起来您正在创建ClickOnce应用程序,对吗?您是否尝试过使用AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData获取参数?@LittleBit我刚刚尝试过,但只是得到一个空引用您是如何尝试启动应用程序的?喜欢Sham提供的格式吗?我喜欢,但它仍然不起作用。它不是一个.exe,而是一个.application。这有关系吗?@JasonLie这是一个clickonce应用程序吗?应用程序启动了吗?或者您有任何错误?你能分享一下这个命令吗?这个命令只是“Program.application test”。它确实会启动,但当我打印参数数组的长度时,它会显示0发布时我是否可以将其更改为.exe?@JasonLie您如何创建.Application
文件?据我所知,它是通过ClickOnce
创建的,将有一种不同的机制将参数发送到ClickOnce
应用程序。