gpt4 book ai didi

uac - 在 windows vista/7 上了解 UAC

转载 作者:行者123 更新时间:2023-12-04 07:01:07 28 4
gpt4 key购买 nike

我真的不明白Windows UAC ...

我需要我的程序能够更新文件并将文件添加到属于程序的特定目录。该目录可能是 Program Files 中应用程序的子目录,例如 c:\Program Files\MyApp\Data 或者它可能安装在其他地方。

我相信,如果它在 Program Files 下,那么我的程序将被禁止在那里写入,除非它以管理员身份运行并提升了它的访问权限。那是对的吗?

我需要能够在不调用提升权限的情况下更新该目录中的文件,并且主应用程序仍然“ protected ”,只允许访问该目录。我无法将 Data 文件夹移动到其他地方,因为这是我需要与之交互的第 3 方应用程序。

如何确定程序文件中的文件夹需要 UAC?程序文件在某些​​方面是特殊的还是只是权限?如果我要调整该 Data 子目录的权限,以便运行该程序的用户帐户具有写访问权限,那么我的应用程序是否可以在没有特殊权限的情况下更新该目录中的文件?

或者有没有更好的方法来实现我没有想到的?我的更新程序需要在 Java 中,因此获得提升的权限是一件痛苦的事情。我想我需要编写一个 C++ 包装器来运行 Java VM,以便我可以为该包装器提供适当的 list 。并非不可能,但我真的不想这样做。

最佳答案

通常,当您需要 protected 和不 protected UAC 模式时,您可以执行以下操作。

  • 创建两个可执行文件(一个应该是主要的并且不需要任何操作的权限,第二个应该能够执行权限操作)。
  • 使用有限权限启动第一个(主要)一个。
  • 当您需要执行特权操作时,创建一个具有管理权限的新进程(将弹出 UAC 窗口)并在其中启动第二个应用程序。
  • 完成第二个应用程序后关闭它,您将返回到限制模式。

  • 当您更改全局设置时,VMWare Workstation 就是这样做的。

    编辑:更改文件夹的权限不是一个好方法。只是一个肮脏的黑客,因为任何人都可以写入该文件夹,这只会使 UAC 的角色无效-毕竟这是 UAC 的角色:防止特殊文件夹中的非特权更改。

    关于uac - 在 windows vista/7 上了解 UAC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1812051/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com