Taste an Editor senden

    • VB.NET

    Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Datzju.

      Taste an Editor senden

      VB.NET-Quellcode

      1. Public Class Form1
      2. Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
      3. ByVal lpClassName As String, _
      4. ByVal lpWindowName As String) As IntPtr
      5. Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _
      6. ByVal hWndParent As Int32, _
      7. ByVal hWndChildAfter As Int32, _
      8. ByVal lpszClass As String, _
      9. ByVal lpszWindow As String) As Int32
      10. Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" ( _
      11. ByVal hwnd As Int32, _
      12. ByVal wMsg As Int32, _
      13. ByVal wParam As Int32, _
      14. ByVal lParam As Int32) As Int32
      15. Private Const WM_CHAR As Int32 = &H102
      16. Private hwnd As IntPtr
      17. Private f As IntPtr
      18. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
      19. hwnd = FindWindow(vbNullString, "Unbenannt - Editor")
      20. f = FindWindowEx(hwnd, 0, "Edit", vbNullString)
      21. End Sub
      22. Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
      23. PostMessage(f, WM_CHAR, Asc(e.KeyChar), 0)
      24. End Sub
      25. End Class
      Also ich habe es so geregelt:

      VB.NET-Quellcode

      1. Form1_load(byval.....
      2. Process.Start("Notepad.exe")
      3. End Sub


      Und dann einfach findwindow noch ins Keypress geschoben und dann hat es bei mir Prima funktioniert.

      Das ist jetzt nicht auf das Problem mit dem Spiel bezogen, sondern auf meinen ersten Beitrag in dem ich schrieb, dass ich Findwindow ins Keypress verschoben habe.

      _____________________________

      MFG Markus
      Dateien
      Von einem Spiel??
      Das Programm sucht ja nach dem Handle von der Editbox und sendet dieser dann die Tasten.
      In einen Spiel wär es glaubich sinnvoller das über SendKeys zu regeln...
      Oder direkt ans Fenster-Handle, aber ich weiß nicht ob das funkt
      Das Problem bei einem Spiel wie aber auch bei manchen guten Programmen ist , das das ganze Programm nur ein Control ist.

      D.h. du hast für das ganze Programm evtl. nur ein Handle.

      Und somit kannst du nicht die einzelnen Controls identifizieren und nicht auf die Controls zugreifen.

      markushettmann schrieb:

      Also ich habe es so geregelt:

      VB.NET-Quellcode

      1. Form1_load(byval.....
      2. Process.Start("Notepad.exe")
      3. End Sub


      Und dann einfach findwindow noch ins Keypress geschoben und dann hat es bei mir Prima funktioniert.

      Das ist jetzt nicht auf das Problem mit dem Spiel bezogen, sondern auf meinen ersten Beitrag in dem ich schrieb, dass ich Findwindow ins Keypress verschoben habe.

      _____________________________

      MFG Markus
      DIE IDEE IST GUT!