点击按钮后,我正在开展一个需要管理员权限的项目。 目前正在使用 C#和 VB.NET 。你的答案语言取决于你,但如果是在其中一种语言中则更好。 :)
我已经尝试了以下内容:
如前所述,仅在单击按钮时才需要管理员权限。如果从未点击过,则无需权限!
那么,无论如何,通过UAC在运行时授予管理员权限,例如。无需重新启动应用程序。
我在网上搜索过,我得到的只是上面提到的方法:)
注意:我在 Microsoft Security Essential 中找到了类似于我需要的内容,它可以在不启动应用程序新实例的情况下授予管理员权限。
说明:运行 MSE 时,默认情况下,您会在历史记录标签中找到第一个单选框。 将此更改为任何其他选项并授予正确的 重新启动应用程序,维护当前状态。
非常感谢任何帮助。
答案 0 :(得分:11)
在流程的生命周期内无法提升。在流程启动时确定流程是否运行升级。
我在Microsoft Security Essential中找到了类似于我需要的内容,它可以在不启动应用程序新实例的情况下授予管理员权限。
不,MSE将在单独的流程中执行提升的任务。
您无需关闭现有流程并开始新流程。您应该做的是使用单独的过程来执行需要提升的任务。该单独的过程不需要显示任何UI。提升的进程可以保持隐藏状态并与显示UI的进程通信。实现此目的的最简单方法是将提升的任务放入进程外COM服务器并使用CoCreateInstanceAsAdmin
。