Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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 XP空闲时间_C#_Vb.net_Windows_Qt4 - Fatal编程技术网

C# 以编程方式重置Windows XP空闲时间

C# 以编程方式重置Windows XP空闲时间,c#,vb.net,windows,qt4,C#,Vb.net,Windows,Qt4,Windows会在用户每次触摸键盘或鼠标时重置空闲时间。我的应用程序需要在特定时刻重置空闲时间,但我不知道如何通过编程实现这一点 以下内容不会使用VB、C#或QT4重置空闲时间。 -编程鼠标移动/单击。 -编程按键。 不知何故,Windows知道这些操作是模拟的。 如何重置空闲时间?任何想法都将不胜感激 例如,如果您需要显示器保持打开状态,您可以调用(需要显示|连续显示|) 在2000/XP上,您可以使用ES_USER_PRESENT标志(不适用于Vista+) 要禁用屏幕保护程序,您可以处理W

Windows会在用户每次触摸键盘或鼠标时重置空闲时间。我的应用程序需要在特定时刻重置空闲时间,但我不知道如何通过编程实现这一点

以下内容不会使用VB、C#或QT4重置空闲时间。
-编程鼠标移动/单击。
-编程按键。
不知何故,Windows知道这些操作是模拟的。


如何重置空闲时间?任何想法都将不胜感激

例如,如果您需要显示器保持打开状态,您可以调用(需要显示|连续显示|)

在2000/XP上,您可以使用ES_USER_PRESENT标志(不适用于Vista+)


要禁用屏幕保护程序,您可以处理WM_SYSCOMMAND的SC_屏幕保护(您必须是前台窗口,否则使用SystemParametersInfo)

使用。ES_SYSTEM_REQUIRED选项(2)重置系统空闲计时器。请访问pinvoke.net以获取所需的声明。

原则上,SetThreadExecutionState()应该满足您的需要。但我发现在某些现代Windows的某些情况下,无法使用system required标志。对不起,我记不清确切的细节了


作为备用方法,您可以通过调用SendInput()来伪造一些输入,例如使用空鼠标移动消息。我猜您的输入伪造失败是因为您调用了SendMessage或PostMessage。

为什么需要重置空闲时间?您已经尝试过了吗?我想这比Anders的回答更明确。@Earlz:嗯,他没有指定他为什么要重置以及哪个空闲计时器(系统或显示器)例如,cd/dvd刻录机程序将使用ES_SYSTEM_REQUIRED,而类似power point的程序将指定ES_DISPLAY_REQUIRED。