vb6在windows10 64下如何防止系统休眠?

nanfei01055 2017-04-22 01:46:21
以下vb6代码无效:

Option Explicit

Private Enum Execution_State
ES_SYSTEM_REQUIRED = &H1
ES_DISPLAY_REQUIRED = &H2
ES_USER_PRESENT = &H4
ES_CONTINUOUS = &H80000000
End Enum

Private Declare Sub SetThreadExecutionState Lib "kernel32" (ByRef esFlags As Long)

Private Sub Form_Load()
SetThreadExecutionState Execution_State.ES_SYSTEM_REQUIRED Or Execution_State.ES_DISPLAY_REQUIRED Or Execution_State.ES_CONTINUOUS
End Sub


以下c#代码却非常管用:

public partial class Form1 : Form
{
[DllImport("kernel32.dll")]
static extern uint SetThreadExecutionState(uint esFlags);
const uint ES_SYSTEM_REQUIRED = 0x00000001;
const uint ES_DISPLAY_REQUIRED = 0x00000002;
const uint ES_CONTINUOUS = 0x80000000;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED);
}
}


期待高手,不吝赐教。
...全文
397 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanfei01055 2017-04-22
  • 打赏
  • 举报
回复
搞定,网上流传的代码害人不浅,byref 改为 byval,调试半天,调用了GetLastError最终才确定问题。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧