我有一个“自动升级”机制,它在 Windows XP 下已经工作了很多年,但在 Windows 7 下失败了,因为提示用户(在 Windows XP 下从未存在过)授予程序以管理员权限运行的权限确实没出现。
win32 程序(用 Borland Delphi 编写)使用 LogonUser() 和 ImpersonateLoggedOnUser() 来模拟用户(具有管理员权限的本地帐户),以便它可以替换 Program Files 文件夹中的选定文件。
如果我使用此用户帐户手动登录到 Windows 7,然后尝试删除 Program Files 文件夹中的文件 Windows 7 提示我允许程序继续运行 - 如果我授予它权限,则文件被删除,如果我拒绝权限报告“拒绝访问”,不允许删除。
当尝试与上述相同的事情时,“拒绝访问”是没有任何提示给用户的结果。
我在一个类似的问题 herabouts 中看到(关于临时文件的创建(其中给出的答案的主旨是非常正确的“不要这样做”),可以“在代码中”提出这样的提示,但我看不到在哪里该方法实际上已解释。