VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/02/05(Wed) 18:31
投稿者たけ
URL
タイトルSendInputの使い方

SendInputを使ってESCを押したようにしたいのですが、うまくいきません。
SPY++でみても、ESCメッセージが出ていませんでした。
どなたか、どこが悪いのか教えてください。

' ユーザーインプットを合成する関数の宣言
Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As tagINPUT, ByVal cbSize As Long) As Long

' キーストローク情報を含む構造体
Type tagKEYBDINPUT
    wVk                 As Integer
    wScan               As Integer
    dwFlags             As Long
    time                As Long
    dwExtraInfo         As Long
    bytUnusedPadding(7) As Byte
End Type

' ユーザーインプットを合成する情報を保存する構造体
Type tagINPUT
    type As Long
    ki   As tagKEYBDINPUT
End Type

' インプットイベントの種類を示す定数の宣言
'ublic Const INPUT_MOUSE = 0
Public Const INPUT_KEYBOARD = 1
'ublic Const INPUT_HARDWARE = 2
Public Const VK_ESCAPE = &H1B&

Private Sub Command1_Click()
    '***************************************************************************
        Dim udtInputEvent(2)      As tagINPUT
        Dim lngWin32apiResultCode As Long

        With udtInputEvent(0)
            ' インプットイベントの種類を指定
            .type = INPUT_KEYBOARD
            With .ki
                ' 仮想キーコードを指定
                .wVk = VK_ESCAPE
            End With
        End With
        With udtInputEvent(1)
            ' インプットイベントの種類を指定
            .type = INPUT_KEYBOARD
            With .ki
                ' 仮想キーコードを指定
                .wVk = VK_ESCAPE
                ' 動作を指定
                .dwFlags = KEYEVENTF_KEYUP
            End With
        End With
        ' キー ストロークを合成
        lngWin32apiResultCode = SendInput(2, udtInputEvent(0), Len(udtInputEvent(0)))
    '***************************************************************************
End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -