在我的C ++ DLL中,我使用CreateFile
C ++函数来获取设备句柄。我必须将它与GENERIC_WRITE
参数一起使用。
在Vista及以后为了使其工作,我需要管理员权限,但我也希望与其他用户一起运行此DLL。
注意:管理员希望其他用户执行我在DLL中执行的任务。
是否有人知道要使用的其他API或解决方法?
答案 0 :(得分:0)
如果您将dll的功能作为COM对象提供,则可以使用COM Elevation Moniker:
COM提升名字对象允许在用户帐户控制(UAC)下运行的应用程序使用提升的权限激活COM类。有关更多信息,请参阅关注最低权限。
[...]高程名字对象用于激活COM类以完成需要提升权限的特定且有限的功能,例如更改系统日期和时间。
提升需要COM类和它的客户。必须将COM类配置为通过注释其注册表项来支持提升,如“要求”部分所述。 COM客户端必须使用高程名字来请求提升。