vfp中调用SetThreadExecutionState函数总结

本文介绍如何使用SetThreadExecutionState函数防止Windows系统在程序运行时进入休眠状态或关闭显示器,适用于需要长时间无人值守运行的终端窗口应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序中的一个终端窗口多数时间处于无人值守状态,并实时联网工作,为避免系统休眠、显示器关屏等情况,可调用kernel32.dll的SetThreadExecutionState函数,此函数的作用是通知操作系统本程序正在使用中,不得进入睡眠状态或关闭显示器。

*声明

DECLARE integer SetThreadExecutionState IN kernel32.dll integer

该函数有三个参数,分别是:
ES_SYSTEM_REQUIRED  = 0x00000001    &&通过重置系统空闲计时器强制系统处于工作状态。
ES_DISPLAY_REQUIRED = 0x00000002    &&通过重置显示器空闲计时器强制显示器打开。
ES_CONTINUOUS = 0x80000000          &&通知系统正在设置的状态应保持有效,直到下一次使用ES_CONTINUOUS的调用(只带ES_CONTINUOUS一个参数调用)

实际调用时,必须组合调用,才能实现需求:
SetThreadExecutionState(0x00000001+0x00000002+0x80000000)   &&组合调用

窗口关闭时,必须在destroy事件或QueryUnload事件中只带ES_CONTINUOUS一个参数调用一次:

ES_CONTINUOUS = 0x80000000 
SetThreadExecutionState(ES_CONTINUOUS)         &&通知操作系统可以按原计划休眠或关闭显示器。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值