2013-10-18 66 views
1

我剛剛與Matlab合作,我花了一天的時間試圖讓Matlab與我的C#應用​​程序進行交互。 按照現在的情況,我可以用發送命令MLapp接口,像這樣:是否可以創建一個Matlab實例作爲管理員?

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創建的。有沒有人知道這個問題的解決方案?

+1

1)通過「以管理員身份運行」啓動matlab,並通過ML-Command shell嘗試保存。可能嗎? 2)通過「以管理員身份運行」啓動matlab並連接到會話,現在可以保存嗎? 3)驗證當前目錄(pwd)是否正確。 – Daniel

+0

我無法連接到我的代碼中指定的實例以外的實例,因此使用以管理員身份運行似乎不是一個選項 – Steve2056726

+0

您無法連接到已打開的ML實例嗎?好的,那是一個奇怪的ML-Connection。我不使用這個,但另一個第三方Matab連接,所以我不常見這個解決方案。關於1)手動運行cod和3)檢查當前目錄? – Daniel

回答

0

這可能是Windows安全性功能User Interface Privelage Isolation。這是不允許較低的完整性進程與較高的完整性進程進行通信的地方。

這已添加到Windows Vista以防止所謂的Shatter Attack

安全問題在於惡意應用程序可能嘗試與提升的MatLab進程進行通信,可能使用它來寫入安全位置。

例如,您的C#應用​​程序正試圖使用​​MatLab來保存硬盤上的文件。

相關問題