タイトル | : keybd_eventの使い方、定数は何? |
記事No | : 12360 |
投稿日 | : 2008/05/26(Mon) 09:34 |
投稿者 | : おじん |
いつもお世話になっています。
今回は、ここ花ちゃんのサンプルを参考に「」を使って文字を入力 するテストをしていますが、キーボードの文字で「括弧"()"、ベキ 記号"^"」の入力方法がわかりません。
keybd_event関数の第一引数bVKの値はどのようにしたらよいのでし ょうか。vBK定数の値を見ていったときASCII値かと思ったのですが 必ずしもそうなっていません。
因みに"("は40で、これを与えると"8"になります。これはvbKey8と 同じです。キーボードを眺めて、"("はShift+"8"なので、下記の Command3_Clickのようにして試したのですが"8"のままです。
何か特殊なやり方がありそうです。 教えてください。よろしくお願いいたします。
以下は、テストコードです: '---------------------------------------------------------- 'keybd_event=>キーの状態を設定する '---------------------------------------------------------- '<引数> 'bVk: 定数(VK_XXXXX参照)またはVBの定数 'bScan: スキャンコード 'dwFlags: 定数 (KEYEVENTF_参照) 'dwExtraInfo: 常に0
Private Declare Sub keybd_event Lib "user32" ( _ ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) Private Const KEYEVENTF_KEYUP = &H2 ' キーを放す Private Const VK_RETURN = &HD '「Enter」キー Private Const VK_SHIFT = &H10 '「Shift」キー
Private Const VK_ADD = &H6B '「+」キー Private Const VK_MINUS = &H6D ' − Private Const VK_A = 65 '「A」キー Private Const VK_B = 66 '「B」キー
'Key0 〜 Key9 は ASCII コードの "0" 〜 "9" と同じ 'vbKey0 vbKey1 vbKey2 vbKey3 vbKey4 'vbKey5 vbKey6 vbKey7 vbKey8 vbKey9
private VK_Key as Byte 'テスト用文字
'ここ花ちゃんのサンプル Private Sub Command1_Click() Call keybd_event(VK_A, 0, 0, 0) Call keybd_event(VK_A, 0, KEYEVENTF_KEYUP, 0) Call keybd_event(VK_RETURN, 0, 0, 0) Call keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0) End Sub
'これはテスト用 Private Sub Command2_Click() '文字を押す Text1.SetFocus VK_Key=vbKey8 Call keybd_event(VK_Key, 0, 0, 0) Call keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0) Call keybd_event(VK_Key, 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_RETURN, 0, 0, 0) Call keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0) Text1.SetFocus End Sub
Private Sub Command3_Click() 'SHIFT+文字を押す Text1.SetFocus VK_Key=vbKey8 Call keybd_event(VK_SHIFT, 0, 0, 0) Call keybd_event(VK_Key, 0, 0, 0) Call keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0) Call keybd_event(VK_Key, 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_RETURN, 0, 0, 0) Call keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0) Text1.SetFocus End Sub
|