我的应用程序的一小部分需要管理员权限(软件的激活需要去 HKLM)。为此,我在需要管理员权限的按钮上绘制盾牌图标,单击时,我使用“runas”动词再次使用适当的参数重新启动应用程序。
这很好用!但是,现在碰巧用户从网络共享执行应用程序。如果他们现在点击“管理员权限按钮”,他们会收到一条错误消息,因为网络驱动器没有为管理员映射,因此找不到可执行文件:-(
解决这个问题的最佳方法是什么?
我的应用程序的一小部分需要管理员权限(软件的激活需要去 HKLM)。为此,我在需要管理员权限的按钮上绘制盾牌图标,单击时,我使用“runas”动词再次使用适当的参数重新启动应用程序。
这很好用!但是,现在碰巧用户从网络共享执行应用程序。如果他们现在点击“管理员权限按钮”,他们会收到一条错误消息,因为网络驱动器没有为管理员映射,因此找不到可执行文件:-(
解决这个问题的最佳方法是什么?
映射的驱动器与每个登录会话一起存储,因此您在提升后就没有它们了。
您可以将管理界面提取到另一个可执行文件并在清单中将其标记为 requireAdministrator。然后通过 ShellExecute 启动 admin 可执行文件。在这种情况下,Windows 资源管理器将复制驱动器映射(但未记录的行为)。