【问题标题】:C: drive access permission in windows 7C:Windows 7中的驱动器访问权限
【发布时间】:2011-10-02 11:06:46
【问题描述】:

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

我想不右键单击并以管理员身份运行。 matlab中是否有命令可以做到这一点?

【问题讨论】:

  • 因为我想..有解决办法吗?

标签: windows matlab permissions matlab-deployment


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    您可以在此处找到更多详细信息:User Account Control Data Redirection

    【讨论】:

    • 但我想写在`C:\...\...` ..我必须..你有解决方案吗?
    • @Omar,既然您已经更新了问题,我发现它不是 C 的根。那么真正的路径是什么?例如,如果您尝试写入程序文件夹,该文件实际上将在%LOCALAPPDATA%\VirtualStore 中创建。会是这样吗?
    • 这里是我要写的路径C:\Program Files\MATLAB\MATLAB Compiler Runtime\v713\bin\k123198.mat
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 2015-04-14
        • 1970-01-01
        • 2013-06-01
        • 1970-01-01
        • 2010-11-19
        相关资源
        最近更新 更多