我怎么可以复制一文件作为一个"标准用户"在Vista(即"管理选择应用程序")的通过促使用户对管理证书?

StackOverflow https://stackoverflow.com/questions/1039875

我有什么UAC发展指南称之为"行政选择的应用。" 如果你熟悉这是什么跳到下一部分。

背景:

我想要让一个"标准"用户有能力选择/取消一个运行在启动选择的偏好对我的应用程序。

因为我的程序是每台机器(不是每个用户),需要做些什么是它将需要删除或复制一个快捷方式的文件为开始菜单/程序/启动文件夹,这将需要行政访问,以执行这种操作。

所以,我想是的"用户账户控制凭证的提示"出现,这样,如果用户有管理员的帐户他们也可以把这些凭证。这显然是如何应用程序都应该被设计成保持使用者从具有切换到另一个帐户每一次,他们需要做的事情行政。

摘自MSDN文件:

行政应用程序的选择

提升的过程中或COM对象

最初的应用程序的启动而无需要求的上升。这些项目的用户界面,将需要一个行政管理接入令牌是装饰用盾牌标以标识。这装饰的指示用户,使用该功能将需要管理员的批准。当的应用程序的检测,这些按钮中的一个已经选择,它具有下列两种选择。

  • 该应用程序启动第二节目使用ShellExecute()为执行行政任务。这第二种程序将标志着一个具备requestedexecutionlevel的requireAdministrator,从而导致用户可以促使批准。这第二个计划将是运行一个完全的管理接入令牌和能够执行所需任务。-或者-
  • 该应用程序启动COM对象的使用CreateElevatedComObject().这API会启动COM对象有完全的管理接入令牌下批准这COM对象能够执行所需任务。

我只是需要复制一文件...似乎过分叉的新过程中使用ShellExecute()我不知道足够关于COM知道如果我能用它来复制一文件。我希望有人可以发表一些代码,它提供了一种方法来复制文件和理想也解释了如何装饰一个菜单项的"盾修饰".

注:

我已经看过的 UAC演示提供microsoft 其中引用的几种计算器员额如(请求Windows Vista UAC提升如果路径是保护?)在主题相关的权限。代码只有一个例子叫一个单独的进程。

有帮助吗?

解决方案 2

我最后会在一个不同的方向。我有我的安装创建一个启动快捷方式在所有用户/用户"启动"文件夹,通过一个参数的应用程序"启动".

当的应用程序的开始我会检查是否存在arg[0].等("启动"),然后检查,如果Settings1.默认。RunOnStartup==true。

如果两个条件都是真实的我退出应用程序。应用程序启动时没有这样的说法(即开始菜单程序的集团)、加载应用程序的正常进行。

该RunOnStartup设置一个用户范围的设置,以便每个用户都可以改变,而不影响其他人。

其他提示

虽然它仍然显示,至少涉及重新启动或产卵的过程中,您可以找到一些帮助,在这里:UAC盾抬高 在CodeProject.com

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