我有一个 VB6 应用程序,它操作 ProgramData 文件夹 Win7 中的文件。它可以很好地处理它创建的文件,但任何最初安装的文件都无法删除。我觉得除非程序可以以管理员身份运行,否则可能会有更多问题。
我尝试将 TrustInfo 部分放入其清单中,但出现一条消息......“请求的操作需要提升。”
清单包括...
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
知道如何给它所需的“海拔”吗?经过更多研究,ProgramData 是 Win7 中使用的文件夹似乎是正确的,但所有安装的文件都需要管理员权限才能删除(无论 setup.exe 是否以管理员身份运行)。
出于兴趣,我将已安装文件的安全属性与应用程序随后创建的文件进行了比较。安装的文件具有具有完全权限的 SYSTEM 和管理员以及只有读取和执行权限的用户。创建的文件有一个额外的对象,我的帐户,具有完全权限。这听起来合乎逻辑,因此我将具有完全权限的帐户添加到已安装的文件之一中,希望应用程序能够将其删除。然后,正如预期的那样,我可以在资源管理器中手动删除文件,无需权限。但该应用程序仍然无法删除它!于是我把已安装文件的用户权限改成了完全权限,App还是删不掉!然后我在高级中更改为文件的所有者,首先更改为用户,然后更改为我的帐户。该应用程序仍然无法删除它。
因此,如果我比较高级安全设置,两个文件之间仍然存在一些差异。安装的文件在我的帐户和用户的权限中有 2 个额外的“未继承”条目。即使我删除了高级中的用户条目(仍然只有读取访问权限),应用程序仍然无法删除。
我想知道这是否是 VB6 问题,我是否应该将应用程序留在旧的安装文件夹中,在那里它可以使用自己的文件做自己喜欢的事情!!