我正在测试一些启动进程的代码,调用应用程序的.exe文件。
以编程方式打开时,出现以下错误:
当我尝试通过命令提示符控制台加载它时,如果我首先cd
到父目录,然后调用.exe,它工作正常。因此,我怀疑这是由于父目录。
这是我的代码:
Process process = new Process();
process.StartInfo.WorkingDirectory = "C:\\Test\\";
process.StartInfo.FileName = "Test.EXE";
process.Start();
我似乎在设置父目录 - 我还能做什么?
答案 0 :(得分:1)
工作目录不可执行文件所在的目录。它是可执行文件认为其当前目录的目录。
EG。所有控制台命令都驻留在Windows目录下的某个位置,但它们的工作目录是命令行中最新的目录。
您的代码使用可执行文件的相对路径名,这意味着Windows将在您的父应用程序的当前(工作)目录的任何目录中查找Test.exe
。
要解决此问题,只需将完整路径传递给StartInfo.FileName
中的可执行文件。
答案 1 :(得分:0)
您也可以通过将路径传递为:
来直接启动流程Process.Start("C:\\Test.exe");
显然你的代码没有任何问题。要解决这个问题,请通过以下链接:
http://www.fixya.com/support/t6556978-correct_device_harddisk1_dr7_problem
答案 2 :(得分:0)
我刚测试了你在这里发布的确切代码,它在我这里工作得很好:
private void button1_Click(object sender, EventArgs e)
{
Process myProc = new Process();
myProc.StartInfo.WorkingDirectory = "C:\\";
myProc.StartInfo.FileName = "Chat APP.exe";
myProc.Start();
}
请考虑检查您的系统,隐私设置,权限等。