Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法重置Windows';timeGetTime值(自Windows启动以来经过的时间)是否以编程方式?_C#_Windows_Winapi_Assembly - Fatal编程技术网

C# 有没有办法重置Windows';timeGetTime值(自Windows启动以来经过的时间)是否以编程方式?

C# 有没有办法重置Windows';timeGetTime值(自Windows启动以来经过的时间)是否以编程方式?,c#,windows,winapi,assembly,C#,Windows,Winapi,Assembly,在Windows 7之后的所有版本中,关闭和重新启动通常执行快速引导,不被视为“完全”关闭 在Windows的Win32 API中,有一个名为的函数,它返回一个DWORD,表示自Windows启动以来经过的时间 此函数返回的变量仅在完全关闭后重置 有没有办法通过编程将此值重置为0?我特别想在我的C#应用程序中实现这一点,但任何语言都可以接受,因为它可以转换为C#。您在这里试图实现什么要求计数器重置为0 若要回答您的问题,请选择“否”。无法通过编程方式将该值重置为0。即使您通过编写一些黑客驱动程

在Windows 7之后的所有版本中,关闭和重新启动通常执行快速引导,不被视为“完全”关闭

在Windows的Win32 API中,有一个名为的函数,它返回一个DWORD,表示自Windows启动以来经过的时间

此函数返回的变量仅在完全关闭后重置


有没有办法通过编程将此值重置为0?我特别想在我的C#应用程序中实现这一点,但任何语言都可以接受,因为它可以转换为C#。

您在这里试图实现什么要求计数器重置为0


若要回答您的问题,请选择“否”。无法通过编程方式将该值重置为0。即使您通过编写一些黑客驱动程序来实现这一点(因为时间计数器在Windows或任何其他操作系统下都是受保护的实体),您也会看到一些不受欢迎的副作用,并且很可能会导致Windows下的立即监视计时器错误检查。每个操作系统都保证时间计数器只能向前移动,许多操作系统组件都认为这是理所当然的。

考虑到您要求解决这个问题以解决未来传说中的时钟溢出错误,您可以使用迂回(或使用C#时的便捷方式)钩住
timeGetTime()
GetTickCount()
,与其全局执行此操作,不如编写一个驱动程序,然后调用KeBugCheck(),或者在没有驱动程序的情况下,使用ExwReboot()调用ExitWindowsEx():)@MichaelChourdakis是的,但问题是是否有一种方法可以在不关闭的情况下通过编程方式重置该值。没有,这可能会导致安全问题,因为其他应用程序可能依赖于此。这是一个全局变量。你为什么要重置它?@MichaelChourdakis我有一个游戏服务器,当windows启动超过24.8天(最大int值以毫秒为单位)时,游戏会进入错误状态。因此,人们基本上拥有上帝模式。我想为他们省去完全关机带来的不便,而是在游戏启动时重置值。因为这是你的应用程序,你可以将
timeGetTime
包装在一个函数中,该函数将处理重置。不过,从长远来看,修复这个bug可能更容易。然后我需要想一个方法来解决这个问题。如果你想知道我想要完成什么,请阅读帖子的评论。@FightRay因为现在问题已经回答了,现在改变你的问题已经太晚了,你需要发布一个新问题,询问你真正的问题。嘿,Shavit,谢谢你的回答。但是,你能详细说明一下吗?游戏显然是打包的,你能看到的不是c伪代码就是汇编代码。而且,timeGetTime已经被钩住了,那么你说的本地钩住是什么意思呢?这和GetTickCount有什么关系?你的建议是在他们之间交换吗?如果是这样,你会怎么做?我使用C++作为一个外部应用程序来启动游戏(它是用C++编写的,但是没有源码)。