.exe文件在从Unity运行时与手动打开时的行为不同



我正试图从Unity运行.exe。当我双击手动打开.exe时,它运行得很好,但从Unity来看,它只是打开了,然后根本不起作用。

.exe是一个非常基本的python脚本(我把它做成了一个可执行文件(,它读取一个文本文件,然后创建另一个。当从Unity运行时,可执行文件窗口会说这个文件不存在/找不到,当我知道它存在时,然后立即关闭。

我试着用以下方法运行这个.exe:

Application.OpenURL(path);

和:

Process.Start(path);

当我点击.exe时,它运行得非常好,除了那一个文本文件之外,没有任何依赖项或其他任何东西。

我如何从代码中运行这个文件,就好像它刚刚被点击一样?

process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.FileName = path;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.ErrorDialog = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.EnableRaisingEvents = true;
process.Start();

但我认为你的道路是无效的。你能调试吗?记录下来并在评论中写下它是什么?它应该是绝对路径btw

解决方案是定义进程的目录,如下所示:

Process p = new Process();
p.StartInfo.FileName = path + "app.exe";
p.StartInfo.WorkingDirectory = path;
p.Start();

其中CCD_ 1是app.exe所在的文件夹的路径。

最新更新