SendKey im Programm simulieren

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von BeefyX.

    SendKey im Programm simulieren

    Hallo,
    ich habe mir ein Programm geschrieben was einen WebBrowser beinhaltet.
    In diesem Webbrowser soll eine Seite aufgerufen werden, in ein Textfeld etwas eingetragen werden und dann ein Knopf betätigt werden.
    Bis zu dem eintragen in das Textfeld bin ich gekommen, nun besteht das Problem, dass wenn ich den Knopf per ID betätigen will, ein anderer betätigt wird (weil er die gleiche ID hat)
    dann dachte ich mir, okay. drückt man eben so oft "Tab" bis man auf dem Knopf ist und dann "enter"
    funktioniert auch super.

    Mein Problem besteht darin, dass das Programm in Hintergrund laufen soll und die Tasten lokal mein gesamtes System bedienen (sie sollen aber nur im Programm arbeiten)
    gibt es dafür eine Lösung?

    hier mein aktueller Code (also der passende Teil)

    VB.NET-Quellcode

    1. TextBox1.Text = m01
    2. Web01.Navigate(TextBox1.Text)
    3. Web01.Document.GetElementById("text").InnerText = satz(z.Next(0, 11))
    4. Pause(2)
    5. '(knopf drücken)
    6. For i = 1 To 25
    7. SendKeys.Send("{tab}")
    8. Next
    9. SendKeys.Send("{enter}")
    10. Pause(2)


    Ich freu mich auf eure Ideen

    gruß thefrog27
    API: SendMessage(), dazu gibt es viele Beiträge im Forum.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    und damit wird alles was gedrückt und eingegeben wird per VB in dem Prog bleiben ?

    ALTERNATIV:
    würde es Möglichkeiten geben den Quelltext rückwärts durchsuchen zu lassen oder ggf. das erste Ergebnis der suche zu ignorieren?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „thefrog27“ ()

    Ch4t4r schrieb:

    Wenn es ein Button ist kann man doch eigentlich

    VB.NET-Quellcode

    1. Button1.PerformClick

    Benutzen?




    Naja der Button ist ja im Webbrowser document. auf einer Internetseite... (keiner der direkt in der Form ist)

    EDIT:

    und der Standardklick für den Button wäre so. (aber wie oben geschrieben, der die Button ID ist auf der Seite 2 mal vorhanden )

    VB.NET-Quellcode

    1. Web01.Document.Forms(0).InvokeMember("submit")
    2. Web01.Document.GetElementById("submit").InvokeMember("click")