0

私は3フォームのプロジェクトを持っています。

form3でsendmessageをform2に使用したいのですが、うまくいきません。form2にflashオブジェクトがある場合(特にゲーム)、それらのキーをそれに送りたいと思います。

ここに私が持っているものの一部がありますが、なぜ機能しないのかわかりません:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
                         (ByVal lpClassName As String, ByVal lpwindowname As String) As IntPtr
    Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
                 (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As IntPtr
    Const WM_KEYDOWN As Integer = &H100
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    Dim destination As IntPtr = FindWindow(Nothing, Window)
    SendMessage(destination, WM_KEYDOWN, Keys.Down, 0)

End Sub

ウィンドウを明確にするために、form2.text を保持する文字列です。

4

1 に答える 1

0

form2 に単純なメソッドを追加してから、form3 で keydown が使用されたときにそのメソッドを呼び出してみませんか。

キーがform3で押されたので、コードがあるとしましょう:

    Private Sub Form3_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown

       If (e.KeyCode = Keys.Down) Then
           Form2.KeyIsPress()
       End If

    End Sub

したがって、Form2 にメソッド KeyIsPress() を追加します。

Public Sub KeyIsPress()

    MessageBox.Show("Key Down is Press")

End Sub

両方のフォーム (Form2 と Form3) が実行されていると仮定します。

于 2013-04-14T03:39:51.423 に答える