即时写入用于下载和安装的插件于需要保存数据程序文件(用于所讨论的程序)的程序的应用程序。现在,这个工程在XP和Vista中禁用但它未能在正常的Vista的UAC精细由于虚拟文件夹。

一个会如何解决这个问题用了每一个需要的应用程序启动时要求管理员权限?

P.S。程序是用C ++编写,可见2005年

编辑:文件系统虚拟文件夹: HTTP://www.codeproject。 COM / KB / Vista的安全/ MakingAppsUACAware.aspx

有帮助吗?

解决方案 3

我通过使一个Windows服务,做的工作,我需要和唯一应用程序运行时,运行周围UAC了。

其他提示

只有在安装过程中写入的程序文件。在这之后,写入到用户文件夹。

您可以稍后提升应用程序的权限,但你只是被延迟的提示。 UAC的全部意义在于防止写入需要管理员权限的文件夹随机应用。 (确定,而不是整个点,但它的一个大的部分。)

您可以创建一个具有管理员权限的服务,并发送命令到它下载的文件移动到所需的目标目录,但该用户的系统开辟了被其他应用程序被滥用,如果你不很仔细地设计它。

本文会谈了解获取应用程序与UAC很好地工作。此外,看到这篇文章这里。

微软推荐给我时,我对他们有写第二个应用程序,您表现为需要管理权限。您可以使用该应用程序部署在一个安全的位置,你的文件(如用户programdata目录)程序文件目录(请注意,如果您的DLL没有那么签署本是一个巨大的安全漏洞的病毒/恶意用户可以操纵你的函数调用之前的文件)。

您非管理应用程序可以调用该应用程序,它会触发UAC。谁知道UAC不会在意的,快乐的人会点击你的应用程序。这些谁恨它会皆已它关闭。呼叫启动新进程(这需要管理员权限),如果用户取消UAC对话框所以要小心赶上,将抛出一个win32异常。

在Vista中的问题是,它试图通过,如果你不管理你的虚拟化程序文件目录来帮助你。在设计上也没有办法,除非你是管理员,你可以写的程序文件目录。

另一种选择是创建所有的“更新”为MSI更新。这样,Windows安装程序将触发UAC为您和您可以为您的软件等提供了一个标志。

选项3是使用ClickOnce部署,这将使您无需UAC自动更新程序,但你住在用户的系统中可能无法与您的应用程序的当前设计工作的沙箱。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top