在Windows 7之后的所有发行版中,关闭和重新启动通常会执行快速启动,而不是“完全”关闭。
How to Perform a Full Shutdown in Windows 10
在Windows的Win32 API中,有一个名为timeGetTime()
的函数,该函数返回一个DWORD,表示自Windows启动以来经过的时间。
此函数仅在完全关闭后才返回重置变量。
是否可以通过编程方式将此值重置为0?我专门在C#应用程序中尝试这样做,但是任何语言都可以接受,因为它可以转换为C#。
答案 0 :(得分:1)
您要在此处完成哪些操作要求将计数器重置为0?
要回答您的问题,否。没有办法以编程方式将值重置为0。即使您通过编写某些hack驱动程序(由于时间计数器在Windows或其他操作系统下受保护的实体)来完成此操作,您也会看到一些不希望的副作用,并且很可能是将在Windows下立即引起看门狗计时器错误检查。每个操作系统都保证时间计数器只会向前移动,许多操作系统组件都将这一事实视为理所当然。
答案 1 :(得分:1)
考虑到您要解决此问题以解决FutureLegends中的Clock Overrun错误,可以使用Detours(或在使用C#时使用EasyHook)钩住timeGetTime()
和GetTickCount()
,而不是这样做全球