我有一个正在使用的WinForms应用程序。在Vista/Win7中,只有一小部分功能需要以管理员身份运行。我了解如何为 list 中的应用程序设置requestedExecutionLevel。诀窍是,我不想要求用户以管理员身份运行整个应用程序,而只是其中一部分。因此,我希望大多数功能都作为Invoker运行。
如果我将管理功能放在dll中,是否有办法将其标记为requireAdministrator?我尝试使用MT将 list 添加到dll,但这似乎不起作用。我需要做什么?
最佳答案
没有方法无法按DLL区分DLL上应用程序的执行级别。这是整个过程的设置。您必须在应用程序中调用另一个进程,该进程使用提升的privs在该DLL中运行代码。
但是,您可以选择的一种方法是使用rundll或rundll32程序直接运行DLL。这是一个独立的Windows程序,旨在加载和运行特定的DLL。您可以提升rundll进程并获得所需的隔离。
搜寻rundll将为您提供有关如何使用它的大量建议:)。