タイトル : Re^2: SendInput検索中 投稿日 : 2012/06/07(Thu) 13:45 投稿者 : @chie
文字をメモ帳などに打ち出すところまではできました 今行き詰っているのは 文字をABC→vbKeyA vbKeyb vbKeyc に 変換する関数がわかりません Asciiコードと同じではない見たいです。 出力すると数字が表示されてしまいました 先に「お行儀が悪い」とおっしゃっていた 貼り付け機能を使えれば そちらのほうが楽なのかもしれません 以下サンプルを抜き出して使わせていただいてる抜粋です ---------------------------------------------------- Private Sub CommandSTR_Click() On Error GoTo errSTR Dim x As Long, y As Long x = CLng(Label1.Caption) y = CLng(Label2.Caption) SetCursorPos x, y mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 Dim wVkKey() As Integer Dim strAddress As String Dim LenAddress As Integer Dim i As Long strAddress = "aaa.bbb@ccc.com" LenAddress = Len(strAddress) LenPassword = Len(strPassword) Dim UpDown() As Integer Dim tempAscii As Integer ReDim wVkKey(LenAddress * 2 - 1) As Integer ReDim UpDown(LenAddress * 2 - 1) As Integer For i = 0 To LenAddress - 1 tempAscii = Asc(Mid(strAddress, i + 1, 1)) wVkKey(i * 2 + 0) = tempAscii: UpDown(i * 2 + 0) = 0 'UpDown(0) = 0 は省略可 wVkKey(i * 2 + 1) = tempAscii: UpDown(i * 2 + 1) = 1 '0 以外は keyUP Next i sKeyEventSet LenAddress * 2, wVkKey, UpDown Exit Sub errSTR: MsgBox Error Err.Clear End Sub Public Sub sKeyEventSet(nInput As Long, _ wVkKey() As Integer, UpDown() As Integer) Dim inputevents() As INPUT_TYPE Dim keyevent As KEYBDINPUT Dim Count As Integer ReDim inputevents(nInput - 1) As INPUT_TYPE For Count = 0 To nInput - 1 With keyevent .wVk = wVkKey(Count) '操作キーコード .wScan = MapVirtualKey(wVkKey(Count), 0) 'スキャンコードを指定 If UpDown(Count) = 0 Then 'キーDown .dwFlags = KEYEVENTF_EXTENDEDKEY Or 0 Else 'キーUP .dwFlags = KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP End If .time = 0 .dwExtraInfo = 0 End With inputevents(Count).dwType = INPUT_KEYBOARD CopyMemory inputevents(Count).xi(0), keyevent, Len(keyevent) Next Count Call SendInput(nInput, inputevents(0), Len(inputevents(0))) End Sub |