スクリーンセーバー実行までの待ち時間を取得・設定          <TOP>


SystemParametersInfo システム全体に関するパラメータを取得・設定
SPI_GETSCREENSAVETIMEOUT(14) スクリーンセーバー実行までの待ち時間を取得
SPI_SETSCREENSAVETIMEOUT(15) スクリーンセーバー実行までの待ち時間を設定
SPIF_SENDWININICHANGE(&H2) 全てのアプリケーションに通知して更新
SPIF_UPDATEINIFILE(&H1) ユーザープロファイルの更新を指定
 

左:取得時(600秒)    右:設定時(1200秒)

 

 

'================================================================
'= スクリーンセーバー実行までの待ち時間を取得・設定
'=    (SPI_GETSCREENSAVETIMEOUT.bas)
'================================================================
#include "Windows.bi"

' システム全体に関するパラメータを取得・設定
Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&)

#define SPI_GETSCREENSAVETIMEOUT 14     'スクリーンセーバー実行までの待ち時間を取得
#define SPI_SETSCREENSAVETIMEOUT 15     'スクリーンセーバー実行までの待ち時間を設定
#define SPIF_SENDWININICHANGE &H2       '全てのアプリケーションに通知して更新
#define SPIF_UPDATEINIFILE &H1          'ユーザープロファイルの更新を指定

Var Shared Text1 As Object
Var Shared Edit1 As Object
Var Shared Button1 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Timeout As Long
    Var Ret As Long

    'スクリーンセーバー機能の実行までの待ち時間を取得
    Ret = Api_SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, 0, Timeout, 0)

    '待ち時間を表示
    Edit1.SetWindowText Str$(Timeout)
End Sub

'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var Timeout As Long
    Var Ret As Long

    TimeOut = Val(Edit1.GetWindowText)

    'スクリーンセーバー機能の実行までの待ち時間を設定
    Ret = Api_SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, Timeout, ByVal CLng(0), SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
End Sub

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