在 matlab 中,我使用了一个 windows 独立应用程序。此应用程序中有一行将文件写入C:\...\...\
. 当我运行从此 Windows 独立应用程序生成的输出 exe 文件时,该 exe 不写入C:\...\...\
也不告诉我该分区中存在安全问题。执行所做的一切都没有。但是,当我右键单击并以管理员身份运行 exe 时,它运行正常。
我想在没有右键单击的情况下以管理员身份运行。matlab中是否有可以做到这一点的命令?
在 matlab 中,我使用了一个 windows 独立应用程序。此应用程序中有一行将文件写入C:\...\...\
. 当我运行从此 Windows 独立应用程序生成的输出 exe 文件时,该 exe 不写入C:\...\...\
也不告诉我该分区中存在安全问题。执行所做的一切都没有。但是,当我右键单击并以管理员身份运行 exe 时,它运行正常。
我想在没有右键单击的情况下以管理员身份运行。matlab中是否有可以做到这一点的命令?
如果您创建应用程序的快捷方式,您可以转到快捷方式的属性,单击快捷方式选项卡中的高级,然后选择“以管理员身份运行”。这样,每当您从快捷方式启动应用程序时,它将以管理员身份运行。
(免责声明:应用程序真的不应该通过写入程序文件来“弄脏自己的巢”。这是糟糕的设计。)
从 Vista 开始,不允许非特权进程写入受保护的文件夹,例如 Program Files,因为 Program Files 旨在存储代码而不是数据。但是,由于 XP 中没有强制执行此限制,因此 MS 以 Virtual Store 的形式提供了向后兼容的 hack。现在,当程序尝试写入受保护的文件夹时,其输出将被重定向到专用文件夹。这样,程序仍然“认为”它写入到它通常的位置,而实际上它写入到一个不受保护的位置。但是,当您稍后检查 Program Files 位置时,您可能看不到该文件 - 因为它实际上并不存在。
您可以在此处找到更多详细信息:用户帐户控制数据重定向。
如果您是管理员,请将您的用户名的完全控制权限添加到目标文件夹。您可以通过右键单击文件夹,转到属性,然后转到安全选项卡来执行此操作。然后编辑并添加您具有Full Control
权限的用户名。然后您不必以管理员身份运行该程序。
一旦启动一个进程,你就无法提升它,所以 Matlab 不可能有一个命令。只是运行 Matlab 提升。