以下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); } }
哪位知道原因,还望不吝赐教。
时间: 2025-01-02 14:39:50