特殊キーの状態を設定          <TOP>


keybd_eventでキーストロークをシミュレートします。

keybd_event キーストロークを合成する関数

ラジオボタンをチェックし開くをクリックした状態を右図に示します。全ウインドウ最小化の状態は省略しています。

 

 

 

 

 

 

'================================================================
'= 特殊キーの状態を設定
'=    (keybd_event.bas)
'================================================================
#include "Windows.bi"

' キーストロークを合成する関数の宣言
Declare Sub Api_keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags&, ByVal dwExtraInfo&)

#define VK_LWIN &H5B                'Windowsキー(左)
#define VK_RWIN &H5C                'Windowsキー(右)
#define VK_APPS &H5D                'アプリケーションキー
#define KEYEVENTF_KEYUP &H2         'キーを放す

Var Shared Radio(5) As Object
Var Shared Button1 As Object

For i = 0 To 5
    Radio(i).Attach GetDlgItem("Radio" & Trim$(Str$(i + 1)))
    Radio(i).SetFontSize 14
Next
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Function Index bdecl () As Integer
Function Index()
    Index = Val(Mid$(GetDlgRadioSelect("Radio1"), 6)) - 1
End Function

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

    Select Case Index
        Case 0
            VK_ACTION = &H45        'E
        Case 1
            VK_ACTION = &H46        'F
        Case 2
            VK_ACTION = &H4D        'M
        Case 3
            VK_ACTION = &H52        'R
        Case 4
            VK_ACTION = &H5B        'Window(Start Menu Button)
        Case 5
            VK_ACTION = &H70        'F1(ascii 112)
    End Select
   
    Api_keybd_event VK_LWIN, 0, 0, 0                'Window 
    Api_keybd_event VK_ACTION, 0, 0, 0 
    Api_keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0 
End Sub

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