我正在尝试通过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.Args[i] == "test")
{
Logger.Info($"G");
}
else
{
Logger.Info($"B");
}
}
}
当我开始发布应用程序并通过CMD启动它或将它安排在带有参数的任务计划中时,e.Args.Length
为0。但是当我在Properties > Debug > Command line arguments
中添加一个参数时,它确实可以工作。
知道我想念什么吗?
答案 0 :(得分:1)
根据问题的评论,我认为问题是开始参数传递错误。 ClickOnce应用程序确实像.exe文件一样工作,由于安全原因,无法使用CMD中的参数启动该应用程序 (Source)
我建议您看看this,它很好地描述了如何通过查询字符串将参数传递给应用程序。
答案 1 :(得分:0)
要使用命令参数运行应用程序表单cmd,请使用以下格式-
C:\StackOverflow\Bin\Debug> StackOverflow.exe arg1 arg2
答案 2 :(得分:0)
您需要在Environment
命名空间中使用System
类,并使用GetCommandLineArgs()
方法来检索参数。
例如,
Args = Environment.GetCommandLineArgs();