特殊キーの状態を設定 <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