vfp中调用SetThreadExecutionState函数总结

程序中的一个终端窗口多数时间处于无人值守状态,并实时联网工作,为避免系统休眠、显示器关屏等情况,可调用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)         &&通知操作系统可以按原计划休眠或关闭显示器。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值