キーボードの状態を取得          <TOP>


キーボード、マウスボタンの状態を取得します。

GetAsyncKeyState キーボードの状態を取得

 

フォームの内外に関係なくどのボタンがクリックされたかを表示します。

 

'================================================================
'= キーボードの状態を取得
'=    (GetAsyncKeyState.bas)
'================================================================
#include "Windows.bi"

' キーボードの状態を取得
Declare Function Api_GetAsyncKeyState& Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey&)

#define VK_LBUTTON &H1                  'マウス左ボタン
#define VK_RBUTTON &H2                  'マウス右ボタン
#define VK_MBUTTON &H4                  'マウス中央ボタン

Var Shared Text1 As Object
Var Shared Timer1 As Object

Text1.Attach getDLgItem("Text1") : Text1.SetFontSize 14
Timer1.Attach getDlgItem("Timer1")

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

'================================================================
'=
'================================================================
Declare Sub Timer1_Timer edecl ()
Sub Timer1_Timer()
    If Api_GetAsyncKeyState(VK_LBUTTON) Then
        Text1.SetWindowText "左ボタンがクリックされました!"
    Else If Api_GetAsyncKeyState(VK_RBUTTON) Then
        Text1.SetWindowText "右ボタンがクリックされました!"
    Else If Api_GetAsyncKeyState(VK_MBUTTON) Then
        Text1.SetWindowText "中央ボタンがクリックされました!"
    Else
        Text1.SetWindowText ""
    End If
End Sub

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