【问题标题】:Windows 7 - Can't update my program's files in C:\Program FilesWindows 7 - 无法在 C:\Program Files 中更新我的程序文件
【发布时间】:2011-09-11 00:30:57
【问题描述】:

我有一个可与 MS Word(2007 版)配合使用的插件程序。它位于 C:\Program Files 位置。我安装了 Windows 7,然后对我在这个位置的文件进行了例行更改,它只会显示一个只读文件。如何授予自己写入自己程序的权限?我无法更改此位置或使用任何其他解决方法。我将这个产品提供给 25 家不同的公司,我无法更改编程以在任何其他位置工作。谢谢

【问题讨论】:

    标签: windows windows-7 uac


    【解决方案1】:

    假设您在修改配置时这样做(而不是在您的应用程序为普通用户运行时)...

    您的用户帐户可能没有正确的权限来写入/修改文件。假设您的帐户是管理员帐户,右键单击该文件,选择“属性”。单击“安全”选项卡。单击编辑并授予您的用户帐户完全控制权。

    如果您不能这样做,可能是因为文件的所有权不允许您这样做。如果是这种情况,请单击“高级”,转到“所有者”选项卡,然后单击“编辑”。

    但是,如果它在运行时需要这些权限,您应该改用 %AppData% 文件夹。

    【讨论】:

    • 虽然不是设计应用程序的正确解决方案,但如果您需要在此时此地编辑文件,这是一个有用的答案。
    【解决方案2】:

    您还可以在您的 EXE 中嵌入 清单,使您的程序在 Windows 7 / Vista 上需要管理员权限。

    【讨论】:

    • +1 其实这是个好主意!它可能会让 OP 意识到允许用户写入程序文件并不理想。
    【解决方案3】:

    在 Windows Vista 上,UAC 意味着用户在没有管理员权限的情况下运行,并且没有对程序文件目录的写入权限。

    正确的解决方案是写入标准用户确实具有写入权限的文件夹。

    您正在寻找的解决方案是使程序文件中的应用程序文件夹对所有用户都可写。您可以通过在安装时添加 DACL 来做到这一点。允许标准用户在程序文件目录中写入是非常糟糕的做法,我建议您改为重新编码您的应用程序,以便它不需要在那里写入。

    【讨论】:

    • 我是唯一一个写入此文件夹的人。用户只能从该文件夹运行程序,就像任何其他程序一样。我是程序员,所以我需要修改自己文件的权限。
    • @Julie 这不是它的工作原理。你不写那些文件。用户写入这些文件。权限授予用户而不是程序。很抱歉不得不告诉您这一点,但您必须重新调整您的期望。不要期望您的程序能够写入程序文件目录。这些是当今的规则。
    • 我只是尝试从 Program Files 文件夹中删除只读属性,但是当我尝试打开文件时仍然是只读的。我只是想应该有一种简单的方法可以关闭只读属性。感谢您的帮助
    • 恐怕没有像只读属性这样的快速修复方法。终于明白我在说什么了!!
    • 成功了!非常感谢您的宝贵时间。是的,根据您的 cmets 我将创建一个开发文件夹,这是一个更好的选择。
    猜你喜欢
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多