マウス・キーボードをブロック          <TOP>


マウス・キーボードをブロックします。

BlockInput マウス・キーボードをブロック

 

例では、「実行」クリック後マウス、キーボードが一定時間ブロックされ、0.0で解除されます。

 

'================================================================
'= マウス・キーボードをブロック
'=    (BlockInput.bas)
'================================================================
#include "Windows.bi"

' マウス・キーボードをブロック
Declare Function Api_BlockInput& Lib "user32" Alias "BlockInput" (ByVal fBlock&)

#define API_FALSE 0
#define API_TRUE 1

Var Shared Timer1 As Object
Var Shared Text1 As Object
Var Shared Button1 As Object

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

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

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

    Timer1.Enable -1
    Ret = Api_BlockInput(API_TRUE)
End Sub

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

    Cnt = Cnt + 1
    If Cnt > 10 Then
        Cnt = 0
        Timer1.Enable 0
        Ret = Api_BlockInput(API_FALSE)
        Text1.SetWindowText ""
    Else
        Text1.SetWindowText "残り時間:" & Format$((10 - Cnt) / 2, "#.#")
    End If
End Sub

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