我的应用程序使用SetSystemTime()
从GPS源设置PC时钟。这在禁用用户帐户控制的Windows 7中工作得很好,但在Windows 8中,即使禁用了UAC,它也会失败。我得到的错误是ERROR_PRIVILEGE_NOT_HELD
。登录到计算机的用户属于Administrators组。只有当我从资源管理器中文件的上下文菜单中以“以管理员身份运行”运行应用程序时,我才能让它工作--但登录的用户是管理员。
所以..。我需要在Windows8上做些什么才能让SetSysytemTime()
正常工作?我是否需要比当前用户的管理员权限更高的权限?如果是,什么权限比管理员权限更高?或者,我是否需要以不同的方式设置用户帐户,才能让这些类型的呼叫在Windows 8上工作?
编辑:正如注释中所指出的,手动尝试启用SE_SYSTEMTIME_NAME
权限不起作用。尝试使用建议的LsaAddAccountRights
的MSDN方法添加权限也不起作用。
发布于 2012-09-13 18:56:29
我认为这可能与这样一个事实有关,在Windows8上禁用了UAC,进程(默认情况下)以中等完整性运行,而不是以高完整性运行(参见this post)。
我认为你需要在你的application manifest中请求requireAdministrator
https://stackoverflow.com/questions/12076140
复制相似问题