我有一个简单的 WinForms 应用程序,可以修改 Windows 注册表。问题是在 Vista/Windows 7 中我需要强制用户切换到管理员。
我不想强制用户在应用程序启动时以管理员身份运行。我希望他在有必要写入注册表时这样做。
最好的情况是当用户需要“切换”到管理员时,出现与许多设置中出现的完全相同的消息,因此没有必要以管理员身份运行表单开始。
我如何在 .Net 中实现这一点?
最佳答案
如果应用程序有时不执行注册表操作而有时执行注册表操作,则分区是可行的方法。分区的三个关键是 (1) 在第二个 exe 上有一个 list ,正如 Ho 所说,(2) 在按钮/菜单项上放置一个屏蔽,以便用户期望提升,以及 (3) 使用 ShellExecute 启动它(之前调用 Start,将 UseShellExecuteFlag 设置为 true)以便使用 list 。
但是,在开始拆分您的应用程序之前,我想问两个问题。首先,它是否曾经用于非管理目的,或者每个用户是否总是“单击该按钮”并需要提升?如果是这样,那么只需在应用程序上放置一个管理 list ,不要对其进行分区。其次,您确定需要写入注册表的那部分吗?你能把你的 key 移到 HKCU 下的东西吗?如果可以,那么您就不再需要提升,每个人都会更快乐。我总是喜欢首先考虑这些可能性,因为与分区相比,它们意味着更少的代码和更少的测试。
关于c# - 如何在 WinForms 中强制用户使用管理员帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2680229/