2013-04-14 19 views
0

我有一個3表單項目。VB.NET SendMessage到項目中的另一個表格

我想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的字符串。

回答

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 

所以,在你的窗體2添加方法KeyIsPress()

Public Sub KeyIsPress() 

    MessageBox.Show("Key Down is Press") 

End Sub 

我認爲這兩種形式(即Form2和Form3)正在運行。

+0

我使用keys.down進行測試。是的,他們都在同一時間開放。不過,我想發送一串密鑰。例如1K。從from3到form2 – user2278788

+0

究竟是什麼'串鑰匙'? – Edper

+0

基本上是遊戲的熱鍵。 '目標,1使用第一個插槽中的項目。我使用了sendkey這個SendKeys.Send(「'1'2'3k」)一段時間,但是這個窗口必須被忽略,我想讓這個窗口不必被聚焦 – user2278788

相關問題