我希望我的C#程序以管理员权限运行。 我知道我可以通过编辑清单文件来做到这一点。 但是,是否有任何可能的方式只询问用户一次(首次启动程序),而不是每次都这样做?
答案 0 :(得分:3)
不,你不能那样做。在UAC下运行时,如果需要提升应用程序,则每次进程启动时都必须显示UAC对话框。
如果要最小化用户必须面对UAC对话框的次数,解决方案是您的应用程序不要求提升。如果应用程序执行的某些任务需要提升,请将它们移动到单独的进程中,并仅在用户尝试执行这些任务时请求提升。所有这些问题都在MSDN in the UAC guidelines上进行了详细介绍。
答案 1 :(得分:2)
但是我想知道是否有任何可能的方法只询问用户一次(首次启动程序),而不是每次都这样做?
不,没有。 UAC的全部目的是确保用户每次执行需要它的程序时都知道他们正在提供提升的权限。没有办法让你的程序违反"那种行为。
答案 2 :(得分:2)
是的,但不是直接的。您可以使用任务计划程序在没有UAC提示的情况下创建管理模式快捷方式。见link。
您可以通过编程方式连接一些可在首次运行时创建此快捷方式的内容。