我试图创建一个" .exe"将读取某种数据(对于已知路径)的文件,并将其绘制一次为" bplot"另一次是"直方图"。
当我从编辑器运行代码时,代码工作得很好,甚至在我做了一个" .exe"文件。当我尝试从" C#"运行它时,问题就开始了。代码使用命令" Process.Start(@" my_path.exe")"。它似乎运行代码,我可以看到制作的数字,但它不会保存图片。
我的matlab代码是:
clear
clc
P = csvread('my_path\test_csv.csv');
SP = bplot(P);
pause (3);
saveas(figure(1),[pwd '\picture1.jpeg']);
pause (3)
B = csvread('my_path\test2_csv.csv');
histogram(B);
pause (3)
saveas(figure(1),[pwd '\picture2.jpeg']);
pause (3)
close
clear
clc
" bplot"是我下载的外部函数。 任何想法如何以其他方式保存它,所以当我从C#代码调用它时,独立应用程序将保存图像?
答案 0 :(得分:0)
尝试使用ProcessStartInfo
参数的语法(请参阅here),而不是直接使用文件路径的语法。
确实如果没有设置ProcessStartInfo.WorkingDirectory
,它将被视为%SYSTEMROOT%\System32
(您没有普通用户的写访问权)
var startInfo = new ProcessStartInfo(@"my_path.exe");
startInfo.WorkingDirectory= .... you exe dir or something else....;
Process.Start(startInfo);