我有一个正在使用的 WinForms 应用程序。在 Vista/Win7 中有一小部分功能需要以管理员身份运行。我了解如何在 list 中为应用程序设置 requestedExecutionLevel。诀窍是,我不想要求用户以管理员身份运行整个应用程序,而只是其中的一部分。所以我希望大部分功能都作为调用者运行。
如果我将管理功能放在一个 dll 中,有没有办法将其标记为 requireAdministrator?我尝试使用 MT 向 dll 添加 list ,但这似乎不起作用。我需要做什么?
最佳答案
不,没有办法在逐个 DLL 的基础上区分应用程序的执行级别。这是一个进程范围的设置。您必须在您的应用程序中调用另一个进程,该进程以提升的权限运行该 DLL 中的代码。
您确实有一个选择是使用 rundll 或 rundll32 程序直接运行 DLL。这是一个独立的 Windows 程序,旨在加载和运行特定的 DLL。您可以提升 rundll 进程并获得所需的隔离。
用谷歌搜索 rundll 会给你很多关于如何使用它的建议 :)。
关于c# - dll 请求的执行级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1882906/