0

在 matlab 中,我使用了一个 windows 独立应用程序。此应用程序中有一行将文件写入C:\...\...\. 当我运行从此 Windows 独立应用程序生成的输出 exe 文件时,该 exe 不写入C:\...\...\也不告诉我该分区中存在安全问题。执行所做的一切都没有。但是,当我右键单击并以管理员身份运行 exe 时,它​​运行正常。

我想在没有右键单击的情况下以管理员身份运行。matlab中是否有可以做到这一点的命令?

4

4 回答 4

2

如果您创建应用程序的快捷方式,您可以转到快捷方式的属性,单击快捷方式选项卡中的高级,然后选择“以管理员身份运行”。这样,每当您从快捷方式启动应用程序时,它将以管理员身份运行。

(免责声明:应用程序真的不应该通过写入程序文件来“弄脏自己的巢”。这是糟糕的设计。)

于 2011-10-03T04:25:06.213 回答
1

从 Vista 开始,不允许非特权进程写入受保护的文件夹,例如 Program Files,因为 Program Files 旨在存储代码而不是数据。但是,由于 XP 中没有强制执行此限制,因此 MS 以 Virtual Store 的形式提供了向后兼容的 hack。现在,当程序尝试写入受保护的文件夹时,其输出将被重定向到专用文件夹。这样,程序仍然“认为”它写入到它通常的位置,而实际上它写入到一个不受保护的位置。但是,当您稍后检查 Program Files 位置时,您可能看不到该文件 - 因为它实际上并不存在。

您可以在此处找到更多详细信息:用户帐户控制数据重定向

于 2011-10-02T11:11:41.397 回答
1

如果您是管理员,请将您的用户名的完全控制权限添加到目标文件夹。您可以通过右键单击文件夹,转到属性,然后转到安全选项卡来执行此操作。然后编辑并添加您具有Full Control权限的用户名。然后您不必以管理员身份运行该程序。

于 2011-10-02T18:06:07.490 回答
0

一旦启动一个进程,你就无法提升它,所以 Matlab 不可能有一个命令。只是运行 Matlab 提升。

于 2011-10-02T16:32:30.077 回答