2011-10-02 35 views
0

在matlab中,我使用了Windows獨立應用程序。在這個應用程序中有一行寫入文件C:\...\...\。當我運行從這個Windows獨立應用程序生成的輸出exe文件時,exe不會寫入C:\...\...\既不告訴我該分區中存在安全問題。所有的執行都沒有。但是,當我右鍵單擊並以管理員身份運行該exe文件時,它可以正常運行。C:驅動器訪問權限在Windows 7

我想這樣做沒有右鍵單擊並以管理員身份運行。在matlab中是否有一個命令可以做到這一點?

+0

,因爲我想..有沒有解決的辦法? –

回答

2

如果您創建應用程序的快捷方式,可以轉到快捷方式的屬性,單擊快捷方式選項卡中的高級,然後選擇「以管理員身份運行」。這樣,無論何時從快捷方式啓動應用程序,它都將以管理員身份運行。

(免責聲明:應用程序真的不應該「弄髒自己的窩」通過寫入Program Files文件這是糟糕的設計。)

1

從Vista開始,非特權進程不允許寫入受保護的文件夾,如Program Files,因爲Program Files被設計用於存儲代碼而不是數據。但是,由於這個限制在XP中沒有實施,MS提供了虛擬商店形式的向後兼容破解。現在,當程序嘗試寫入受保護的文件夾時,其輸出將被重定向到專用文件夾。這樣,程序仍然「認爲」它寫入其通常的位置,而實際上它寫入到未受保護的位置。但是,當您稍後檢查Program Files位置時,您可能看不到該文件 - 因爲它不是真的。

您可以在這裏找到更多的細節:User Account Control Data Redirection

+0

但我想寫在'C:\ ... \ ... \'..我可以......你有解決方案嗎? –

+1

@Omar,現在你已經更新了這個問題,我發現它不是C的根。那麼實際路徑是什麼?例如,如果您想要寫入程序文件夾,該文件實際上將在'%LOCALAPPDATA%\ VirtualStore'中創建。情況會是這樣嗎? – eran

+0

這裏是我想寫在'C:\ Program Files \ MATLAB \ MATLAB編譯器運行時\ v713 \ bin \ k123198.mat'中的路徑 –

0

一旦程序啓動就無法升級,所以Matlab不可能有這樣的命令。只是運行Matlab升高。

1

如果您是管理員,請將您的用戶名的完全控制權限添加到目標文件夾。您可以通過右鍵單擊文件夾,然後選擇屬性,然後選擇安全選項卡。然後編輯並添加用戶名和Full Control權限。然後,您不必以管理員身份運行該程序。