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