Vb6 设置系统日期需要提升权限吗?(错误70权限被拒绝)

Vb6 设置系统日期需要提升权限吗?(错误70权限被拒绝),vb6,Vb6,我维护了一个相当大的机器控制应用程序(约500 kLOC),我试图让网络上的多台机器同步它们的内部时钟。(出于安全原因,它们位于专用网络上,永远不能连接到Internet。) 我正在成功检索远程机器时间(使用NetRemoteTOD()),并在IDE中使用Date=和time=成功设置本地时间。但是,当我运行编译后的应用程序时,它在Date语句处失败,错误为70-权限被拒绝 我可以通过以管理员身份运行编译后的应用程序,或者以兼容模式运行windows XP来解决这个问题。(我正在使用Window

我维护了一个相当大的机器控制应用程序(约500 kLOC),我试图让网络上的多台机器同步它们的内部时钟。(出于安全原因,它们位于专用网络上,永远不能连接到Internet。)

我正在成功检索远程机器时间(使用
NetRemoteTOD()
),并在IDE中使用
Date=
time=
成功设置本地时间。但是,当我运行编译后的应用程序时,它在Date语句处失败,错误为70-权限被拒绝

我可以通过以管理员身份运行编译后的应用程序,或者以兼容模式运行windows XP来解决这个问题。(我正在使用Windows 10 Pro。)

我还尝试过使用Win-32
SetLocalTime
API调用,因为我了解到本地用户在默认情况下拥有此权限(与
SetSystemTime
调用所需的权限相反),但结果是相同的(在IDE中以兼容模式工作,可执行文件作为管理员,但不是常规过程)

我查看了
RtlAdjustPrivilege()
,但这看起来很快就成了一个泥潭,尤其是因为我很难找到我正在寻找的特权的contant值(非字符串格式)(
SE_SYSTEMTIME_NAME
,我相信)

到目前为止,在这个应用程序中还没有其他需要管理员权限或兼容模式的东西,我不希望这是它的第一个实例——我已经在世界各地安装了大约350个


那么,有什么想法吗?

更新(不是积极的):我找到了所需的常量,并在调用SetLocalTime之前尝试使用RtlAdjustPrivilege。毫不奇怪,它在解释器(也就是新的RtlAdjustPrivilege调用)下工作,但不是作为可执行文件。您考虑过使用NTP(网络时间协议)服务器吗?有一些免费的可以让所有这些工作变得更容易。可能你的IDE本身就是以管理员的身份运行的,这就是它在那里工作的原因。@ÉtienneLaneville-不幸的是,NTP解决方案在这里不起作用,因为应用程序本身对时间非常关键;如果时间在运行过程中发生变化,它可能会破坏其控制功能的计算(变化率)。因此,我只想在启动时设置时间。不过,谢谢你的指针——这对其他应用程序肯定很有用。@DaveInCaz:这是我想到的;事实上,当我在微软的NTVDM for WindowsOnWindows(WOW)中发现一个错误时,我确实做到了这一点。该错误将系统时钟提前一天,精确到午夜,将日期提前一秒。这个应用程序要大得多,用
MyNow
替换对
Now
的每个调用的想法有点令人畏惧。不过,它还在桌子上——谢谢你的建议!