[リストへもどる]
一括表示

投稿時間:2003/09/05(Fri) 21:34
投稿者名:
Eメール:
URL :
タイトル:
"-"(ハイフン)をkeybd_eventで入力するには
Private Declare Sub keybd_event Lib "user32.dll" _
        (ByVal bVk As Byte, ByVal bScan As Byte, _
         ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Const KEYEVENTF_KEYUP = &H2
Private Const KEYEVENTF_EXTENDEDKEY = &H1

''''''''''''"-"(ハイフン)を指定したいのですが、ここが分かりません。
Private Const VK_A = &H41
Private Const VK_B = &H42
'・
'・
'・
Private Sub Command1_Click()
  call names("a-a")
End Sub
Private Sub names(aaa As String)
  Do While Len(aaa) > 0
    DoEvents
    Select Case Left(aaa, 1)
      Case "-"

      Case "a"
        Call keybd_event(VK_A, &H79, KEYEVENTF_EXTENDEDKEY Or 0, 0)
        Call keybd_event(VK_A, &H79, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
      Case "b"
        Call keybd_event(VK_B, &H79, KEYEVENTF_EXTENDEDKEY Or 0, 0)
        Call keybd_event(VK_B, &H79, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
    End Select
    aaa = Mid(aaa, 2)
  Loop
End Sub


------------------------------------------------------------------------
このような感じで指定された文字を入力したいのですが、

"-"(ハイフン)がどうもうまくいきません・・・
ASCII 文字セットで調べたところ"-"が45(&H2D)だったので、
それで指定してもなにも反応しません。
どうやら45だとInsertを押してしまうようで、行き詰まってしまいしました。

どうかよろしくお願いします。

投稿時間:2003/09/05(Fri) 23:25
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: "-"(ハイフン)をkeybd_eventで入力するには
キーコードを調べるなら下記で解ります。
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    Debug.Print KeyCode
End Sub

結果  - は &HBD  189  
今調べているのはノートパソコンなので。

テンキーの - は VK_SUBTRACT  vbKeySubtract  &H6D  109  のようです。

投稿時間:2003/09/06(Sat) 01:10
投稿者名:
Eメール:
URL :
タイトル:
Re^2: "-"(ハイフン)をkeybd_eventで入力するには
> キーコードを調べるなら下記で解ります。
> Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
>     Debug.Print KeyCode
> End Sub

そういえばこういう方法がありましたね・・・
すっかり忘れてました(汗

> 結果  - は &HBD  189  
無事思い通りのことが出来ました♪
花ちゃんさん、ありがとうございました。