SetThreadExecutionState
全部标签 我想在Windows下有一个最简单的C程序版本,它可以防止操作系统在运行时进入休眠模式或休眠模式。目前我有这个:#includeintmain(intargc,char**argv){while(1){SetThreadExecutionState(ES_CONTINUOUS|ES_SYSTEM_REQUIRED);Sleep(300*1000);/*wait300seconds*/}return0;}但是,这不起作用-如果我尝试使用OrwellDev-C++5.2.0.3编译它,我会收到此错误:[链接器错误]C:\Users\bachmann\AppData\Local\Temp\c
我正在尝试编写一个.NET控制台应用程序,它按顺序从Web下载文件列表。该程序基本上有效。问题是Windows的省电sleep机制会中断下载。SetThreadExecutionState方法似乎在控制台应用程序中不起作用?usingSystem.Runtime.InteropServices;usingSystem.Net;publicstaticclassUtility{[DllImport("kernel32.dll",CharSet=CharSet.Auto,SetLastError=true)]publicstaticexternThreadExecutionStateSet
我想为另一个用户禁用屏幕保护程序。如何实现?我有管理权限。我有一个不能被屏幕保护程序中断的应用程序。 最佳答案 如果您自己编写应用程序,请考虑调用非托管APISetThreadExecutionState(PInvokereference)。复制我对howdoipreventscreen-saversandsleepsduringmyprogramexecution?的回答:不要乱动屏保设置,使用SetThreadExecutionState.这是通知窗口您的应用程序处于事件状态的API:Enablesanapplicationto
在WindowsXP上,我可以在按下笔记本电脑的电源按钮时检测到事件。获取APMQUERYSUSPEND事件的条件是[控制面板->电源选项->系统设置->当我按下电源按钮时->sleep]的选项必须更改为“sleep”。MainFrm::OnPowerBroadcast(WPARAMwParam,LPARAMlParam){switch(wParam){casePBT_APMQUERYSUSPEND://Askquestionwhethertopoweroffornot//Ifnot,returnBROADCAST_QUERY_DENYreturnBROADCAST_QUERY_DEN
我的程序在硬盘空闲空间上执行任务。任务比较长,需要1-2个小时。问题是在笔记本电脑上,当用户不活动时,硬盘可能会在几分钟后关闭。我如何以编程方式防止Windows硬盘转速下降(断电)? 最佳答案 要防止系统进入空闲模式,您可以尝试使用SetThreadExecutionState功能。此函数通知系统应用程序正在使用中,并允许您指定线程的执行要求。用法可以是这样的,但我不确定这是否也会影响磁盘断电计时器:typeEXECUTION_STATE=DWORD;constES_SYSTEM_REQUIRED=$00000001;ES_DIS
使用以下行禁用系统sleep时:SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS|EXECUTION_STATE.ES_AWAYMODE_REQUIRED);我怎么知道它有效?例如,在我的一台电脑上,它不起作用。计算机仍然进入休眠状态,但也不异常(exception)。如果没有异常,有没有其他方法可以知道调用SetThreadExecutionSTate失败了? 最佳答案 SetThreadExecutionState的返回值用于指示成功或失败。这在documentation
我想阻止系统从Windows服务进入休眠/休眠状态。我正在调用SetThreadExecutionState函数来执行此操作。不过好像没什么效果。我只想知道SetThreadExecutionState函数是否适用于Windows服务。如果不是,还有什么替代方法。下面是我正在使用的C#代码。我在Onstart服务方法上调用它。[DllImport("kernel32.dll",CharSet=CharSet.Auto,SetLastError=true)]staticexternuintSetThreadExecutionState(EXECUTION_STATEesFlags);pr