Unit testing UAC模拟和单元测试
我有一些需要管理员权限的设置函数,其结果被另一个未运行的应用程序使用。因此,为了让我的单元测试真正反映现实,我需要调用设置函数,然后以某种方式删除提升,以便调用使用设置的函数。难道没有一个相当简单的方法可以做到这一点吗?看来我应该能用 CreateRestrictedToken 及 非模拟登录用户Unit testing UAC模拟和单元测试,unit-testing,winapi,uac,Unit Testing,Winapi,Uac,我有一些需要管理员权限的设置函数,其结果被另一个未运行的应用程序使用。因此,为了让我的单元测试真正反映现实,我需要调用设置函数,然后以某种方式删除提升,以便调用使用设置的函数。难道没有一个相当简单的方法可以做到这一点吗?看来我应该能用 CreateRestrictedToken 及 非模拟登录用户 有任何示例吗?UAC提升仅在流程启动时执行。一旦进程开始运行,就不可能(取消)提升进程。因此,要完成您正在尝试的操作,您需要单独的流程。您可以: 最初以非提升方式运行.exe,并在需要调用设置函数时让
有任何示例吗?UAC提升仅在流程启动时执行。一旦进程开始运行,就不可能(取消)提升进程。因此,要完成您正在尝试的操作,您需要单独的流程。您可以:
ShellExecute/Ex()
与“runas”
动词一起使用,或者使用第三方实现以提升状态启动新进程CreateRestrictedToken()
和CreateProcessAsUser()
启动单独的非提升进程