【发布时间】:2020-01-23 07:24:27
【问题描述】:
我有一个对远程服务器上的时间敏感的应用程序——它需要在特定的时刻运行。连续循环和检索服务器时间并没有让我像我想要的那样接近。我正在尝试检索服务器时间并提前更新我的系统时间(Python 3.7,Windows 10),以便模块可以尽可能接近服务器时间重新启动。我在win32api中找到了SetSysemTime函数。
这是我为测试各种方法而创建的两行模块:
import win32api
win32api.SetSystemTime(2020,9,1,21,9,10,10,0)
当我运行它时,我得到以下错误:
Traceback(最近一次调用最后一次): 文件“C:\Users\pinev\AppData\Local\Programs\Python\Python37\Projects\Threading Tests\settime.py”,第 4 行,在 win32api.SetSystemTime(2020,9,1,21,9,10,10,0) pywintypes.error: (1314, 'SetSystemTime', 'A required privilege is notheld by the client.')
看来我有正确的解决方案,但不知何故需要更改模块的权限才能让 Win10 处理请求。我研究了在 Python 模块中设置权限的方法,但似乎找不到任何有效的方法。如果有人可以提供解决方案或参考,将不胜感激。
提前致谢。
【问题讨论】:
-
没有这方面的专家,但从文档看来您需要
SE_SYSTEMTIME_NAME权限,这可能会对您有所帮助stackoverflow.com/questions/32776233/… -
你打算如何计算传输时间?
-
我已经进行了无数次定时尝试,并且对离开我的机器并到达服务器所需的时间有了相当准确的感觉。如果我来得太早,我会被拒绝;通过改变我的起步(在正式开放时间之前多少,我提交我的请求),我对我可以多早开始并在开始时间后不久到达有了很好的了解。我用它来估计传输时间。我有两个位置,一个具有 750 Mbps 的上传速度,一个具有 350 Mbps 的上传速度。我必须在每个位置使用不同的因素。
标签: python winapi windows-10 elevated-privileges