无法在Windows 8上使用SetSystemTime设置时钟

Nic*_*haw 5 c winapi windows-8

我的应用程序用于SetSystemTime()从GPS源设置PC时钟.这在Windows 7中正常工作,禁用了用户帐户控制,但在Windows 8中,即使禁用了UAC,也会失败.我得到的错误是ERROR_PRIVILEGE_NOT_HELD.登录到计算机的用户位于Administrators组中.如果我从资源管理器中的文件上下文菜单中以"以管理员身份运行"运行应用程序,我只能使其工作 - 但登录用户是管理员.

那么......在Windows 8上我需要做些什么才能SetSysytemTime()开始工作?我是否需要比当前用户的管理员权限更高的权限?如果是这样,什么比管理员更高的特权?或者我是否需要以不同方式设置用户帐户以允许这些类型的呼叫在Windows 8上运行?

编辑:如评论中所述,手动尝试启用SE_SYSTEMTIME_NAME权限不起作用.也没有尝试使用建议的MSDN方法添加权限LsaAddAccountRights.

Dam*_*ver 3

我认为这可能与以下事实有关:在 Windows 8 上禁用 UAC 时,进程(默认情况下)以中等完整性运行,而不是以高完整性运行(请参阅这篇文章)。

requireAdministrator我认为您需要在您的应用程序清单中请求