Alt+P,Alt+NをPostmessageで送るには
あるアプリがあり、そのハンドルを取得してからメッセージを送るプログラムを作っています。
PageUp,PageDownをそれぞれAlt+P,Alt+Nに変換して送るものです。
関数・定数宣言部は省略しています。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim hTest As Long
hTest = FindWindow(vbNullString, "Test")
If KeyCode = 33 Then 'PageUp
PostMessage MPL, WM_SYSKEYDOWN, VK_ALT, 0
PostMessage MPL, WM_KEYDOWN, VK_N, 0
PostMessage MPL, WM_KEYUP, VK_N, 0
PostMessage MPL, WM_SYSKEYUP, VK_ALT, 0
ElseIf KeyCode = 34 Then 'PageDown
PostMessage MPL, WM_SYSKEYDOWN, VK_ALT, 0
PostMessage MPL, WM_KEYDOWN, VK_P, 0
PostMessage MPL, WM_KEYUP, VK_P, 0
PostMessage MPL, WM_SYSKEYUP, VK_ALT, 0
End If
End Sub
送り先(Test.exe)では、
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim L As String
L = ""
If Shift = 4 Then L = "Alt + "
Label1.Caption = L & KeyCode
End Sub
ラベルで「Alt+P」などが来ているかどうか見ています。こちらのウィンドウで「Alt+P」を押すとちゃんと表示されます。
しかし、この2つを組み合わせるとPのみやNのみしか送られてきません。どこかおかしいのでしょうか。
Alt+PなどをPostMessageで送る方法でよい方法があれば、お教え下さい。
よろしくお願いします。