我是Matlab的新手,我花了一天时间试图让Matlab与我的C#应用程序进行交互。 目前我可以使用MLapp接口发送命令,如下所示:
MLApp.MLApp matlab = new MLApp.MLApp();
我的问题是当我尝试执行命令来保存数据时:
string result = matlab.Execute(inputVectorCommand);
matlab.Execute("save('saveTest.mat','x')");
我收到以下错误:
Error using save
Unable to write file ytest.mat: permission denied.
我相信这是因为Matlab的实例是用最高的UAC创建的。有人知道这个问题的解决方案吗?
答案 0 :(得分:0)
可能是称为User Interface Privelage Isolation的Windows安全功能。这是不允许较低完整性过程与更高完整性过程通信的地方。
这已添加到Windows Vista中,以防止所谓的Shatter Attack。
安全问题是恶意应用程序可以尝试与提升的MatLab进程通信,可能使用它来写入安全位置。
例如,您的C#应用程序正在尝试使用MatLab来保存硬盘驱动器上的文件。