Option Explicit
Private Sub Command1_Click()
Dim lnghWnd As Long 'トップレベル(親)のウィンドウハンドル
Dim lnghWndTarget As Long 'ターゲット(子)のウィンドウハンドル
Dim lngRc As Long 'APIの返却値
'-------------------------------------
' メモ帳を起動
'-------------------------------------
lngRc = Shell(Environ("WINDIR") & "\NOTEPAD.EXE", vbNormalFocus) '起動
Sleep 100 '0.1秒待つ(起動完了)
'-------------------------------------
' ターゲットウィンドウのハンドルを取得
'-------------------------------------
lnghWnd = FindWindowEx(0, 0, "Notepad", "無題 - メモ帳") '「メモ帳」のウィンドウハンドル
lnghWndTarget = FindWindowEx(lnghWnd, 0, "Edit", "") '子ウィンドウのEdit
'-------------------------------------
' 送信
'-------------------------------------
Dim strDt As String
'-------------------------------------
' 1文字ずつ送信 50ミリ(0.05)秒間隔
'-------------------------------------
Dim lngDt As Long
Dim i As Long
For i = 1 To Len(Text1.Text) '1文字
strDt = Mid(Text1.Text, i, 1) '改行文字を復元
lngDt = Asc(strDt) 'ASCIIコードに変換
lngRc = SendMessage(lnghWndTarget, WM_IME_CHAR, lngDt, 0) '1文字送信
Sleep 50 '指定ミリ秒待つ
Next i
' '-------------------------------
' ' 全ての文字を一度に送信する場合は
' ' 下記のようにする。
' '-------------------------------
' lngRc = SendMessageAny(lnghWndTarget, WM_SETTEXT, 0, ByValText1.Text)
End Sub
Private Sub Form_Load()
Text1.Text = "SendMessage を使った「メモ帳」への入力" & vbCrLf & _
"1文字0.1秒" & vbCrLf & _
vbCrLf & _
"寿限無、寿限無" & vbCrLf & _
"五劫の擦り切れ" & vbCrLf & _
"海砂利水魚の" & vbCrLf & _
"水行末 雲来末 風来末" & vbCrLf & _
"食う寝る処に住む処" & vbCrLf & _
"やぶら小路の藪柑子" & vbCrLf & _
"パイポパイポ パイポのシューリンガン" & vbCrLf & _
"シューリンガンのグーリンダイ" & vbCrLf & _
"グーリンダイのポンポコピーのポンポコナーの" & vbCrLf & _
"長久命の長助"
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
End
End Sub