我想用下面的路径启动一个进程。
ProgramFiles(X86)\Philips语音\设备控制中心PDCC.exe
当我将其输入控制台时,进程将按预期的方式启动,但当我尝试用代码进行操作时,会得到以下异常:
系统找不到指定的文件。
到目前为止,这是我的代码:
var startInfo = new ProcessStartInfo("%ProgramFiles(x86)%\Philips Speech\Device Control Center PDCC.exe");
Debug.Assert(startInfo.EnvironmentVariables.ContainsKey("ProgramFiles(x86)")) //Is true
new Process(startInfo).Start(); //<- exception occures here
有没有人知道我是否可以通过给ProcessStartInfo类环境变量来直接完成这个任务,或者我必须在这样做之前解析它呢?
发布于 2016-08-26 12:51:49
string path = Environment.ExpanEnvironmentVariables("%ProgramFiles(x86)%\Philips Speech\Device Control Center PDCC.exe");
var startInfo = new ProcessStartInfo(path);
new Process(startInfo).Start();
通过这种方式,您可以使用变量(例如"%ProgramFiles(x86)%
),而不依赖于C:\
或其他文件夹中的文件夹。
发布于 2016-08-26 12:52:39
发布于 2016-08-26 12:51:27
构造函数只是将fileName
属性设置为您传递的内容,所以是的,您需要首先解析环境变量。
来自ProcessStartInfo的源代码
public ProcessStartInfo(string fileName) {
this.fileName = fileName;
}
https://stackoverflow.com/questions/39166722
复制相似问题