モニタを指定時間停止          <TOP>


モニタの電源を指定時間停止させます。

SendMessage ウィンドウにメッセージを送信

SC_MONITORPOWER(&HF170) ディスプレイの電源管理状態を設定

 

例では、約10秒間停止後復帰します。

 

'================================================================
'= モニタを指定時間停止
'=    (SC_MONITORPOWER.bas)
'================================================================
#include "Windows.bi"

' ウィンドウにメッセージを送信
Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any)

#define SC_MONITORPOWER &HF170          'ディスプレイの電源管理状態を設定
#define WM_SYSCOMMAND &H112             'システムメニューが操作された

Var Shared Timer1 As Object
Timer1.Attach GetDlgItem("Timer1")

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Timer1.Enable 0
End Sub

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Ret As Long
   
    A% = MessageBox("", "モニタを10秒間停止しますか?", 4, 1)
    If A% = 5 Then
        Timer1.SetInterval 1000
        Timer1.Enable -1
        Ret = Api_SendMessage(GethWnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal 2)
    End If
End Sub

'================================================================
'=
'================================================================
Declare Sub Timer1_Timer edecl ()
Sub Timer1_Timer()
    Var Ret As Long

    Timer1.Enable 0
    Ret = Api_SendMessage(GethWnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal -1)
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End