我正试图运行一个可执行文件作为程序的一部分,该文件将作为事件处理程序中的重复调用。目前,被注释掉的第一行和最后一行按原样运行可执行文件,我遇到的问题是试图使其运行,以便用户可以选择在弹出时隐藏此可执行文件(用单选按钮完成)
Console.WriteLine("Generated Instruction: " + arguments);
//var proc = System.Diagnostics.Process.Start(chartLocation + @"MODUS CHaRT CMD.exe", arguments ); // Run Command Line instruction
Process myProc = new Process();
if (hideChartStatus) /* make the process invisible */
{
try
{
myProc.StartInfo.CreateNoWindow = true;
myProc.StartInfo.UseShellExecute = false;
Console.WriteLine("Invisible CHART window generated");
}
catch
{
Console.WriteLine("Could not hide CHaRT window");
}
}
else
{
myProc.StartInfo.CreateNoWindow = false;
}
myProc.StartInfo.WorkingDirectory = chartLocation;
myProc.StartInfo.FileName = "\MODUS CHaRT CMD.exe";
myProc.StartInfo.Arguments = arguments;
myProc.Start();
//myProc = myProc.Start(chartLocation + @"MODUS CHaRT CMD.exe", arguments);
//proc.WaitForExit();
myProc.WaitForExit();
这是我到目前为止所得到的,但我犯了错误"System.ComponentModel.Win32异常:'系统找不到指定的文件'">
在myProc.start();
我猜这和我如何使用文件名和工作目录有关?
有人知道正确的语法吗?
大家别理我,我是个白痴。
更准确地基于这里所做的工作:https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.process.start?view=netframework-4.7.2
正确的用法是:
//myProc.StartInfo.WorkingDirectory = chartLocation;
myProc.StartInfo.FileName = chartLocation + @"MODUS CHaRT CMD.exe";
myProc.StartInfo.Arguments = arguments;
myProc.Start();