Windows Handle

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Jax.

    Windows Handle

    Hi,

    Ich probiere gerade, einen Mausklick zu simulieren. Dabei soll das Programm die Maus aber nicht "entführen", sondern nur auf einer bestimmten Koordinate einen Klick simulieren.
    Hab ich also erstmal Google gequält, dann bin auf einen Code aus diesem Forum gestoßen.
    Das ist jetzt der gesamte Code dieses Projekts:



    Bei "SendMessage(WindowsHandle.Item(WindowToSendTo), WM_LBUTTONDOWN, Keys.LButton, ClickPos)
    SendMessage(WindowHandle.Item(WindowToSendTo), WM_LBUTTONUP, Keys.LButton, ClickPos)"
    tritt allerdings ein Fehler auf. VB sagt mir, ich habe das nicht deklariert.
    Könnte mir jemand meinen Fehler sagen?
    Arbeite auch noch nicht lange mit VB, versuche gerade die Basics zu lernen :S

    Danke

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Klicker As Threading.Thread
    4. <System.Runtime.InteropServices.DllImport("User32.Dll")> Public Shared Function mouse_event(dwFlags As Integer, dx As Integer, dy As Integer, cButtons As Integer, dwExtraInfo As Integer) As Integer
    5. End Function
    6. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    7. Mausklick()
    8. End Sub
    9. Private Sub Mausklick(Optional Button As MouseButtons = Windows.Forms.MouseButtons.Left)
    10. Const MOUSEEVENTF_ABSOLUTE = &H8000 : Const MOUSEEVENTF_LEFTDOWN = &H2 : Const MOUSEEVENTF_LEFTUP = &H4 : Const MOUSEEVENTF_MIDDLEDOWN = &H20 : Const MOUSEEVENTF_MIDDLEUP = &H40 : Const MOUSEEVENTF_MOVE = &H1 : Const MOUSEEVENTF_RIGHTDOWN = &H8 : Const MOUSEEVENTF_RIGHTUP = &H10 : Select Case Button : Case Windows.Forms.MouseButtons.Left : mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) : mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) : Case Windows.Forms.MouseButtons.Middle : mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0) : mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0) : Case Windows.Forms.MouseButtons.Right : mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) : mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0) : End Select
    11. End Sub
    12. End Class


    So kannst Du einen Mausklick machen.

    Mit der SetPosition Funktion aus der Windows Api kannst Du die Position der Maus verändern. Danach klicken mit dem Code von oben.

    Musste Dir halt auch selbst ein bisschen Mühe machen noch.
    Hi,

    erstmal muss ich mich natürlich bei dir bedanken ;)

    Allerdings verändert der Code ja (wenn ich ihn denn richtig verstanden habe) die Position des Mauszeigers. Das ist das, was ich verhindern will.
    Die Maus soll noch benutzbar sein.

    Trotzdem danke ich dir :)
    Position speichern, klicken, zurücksetzen.
    Was willst du erreichen? Im Browser Buttons klicken?
    Kann man anders lösen.
    Andere Programme öffnen oda so?
    Kann man anders lösen.

    So wie du das willst ist das doch etwas blöd.
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Auch nach einer anderen Methode hab ich schon gesucht, leider nicht gerade erfolgreich.
    ich möchte Buttons in dem Webbrowser klicken, kein Problem, nach 2 minütiger Googlesuche hatte ich es. Nur Ist es ein Flashobjekt :S Da bin ich etwas ratlos.

    EDIT: Oder ich stell mich einfach etwas blöd an..

    MfG
    Habe sowas noch nie gemacht, da ich es sinnlos finde. Aber mal rein theoretisch(Erfahrene Benutzer mögen mich bitte aufklären) müsste es doch möglichsein über SendMessage und z.B. WM_MOUSEDOWN solche Clicks auf ein Fenster zu simulieren ohne die Mausposition zu verändern.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Ich meine einen in der Entwicklungsumgebung.
    Den Begriff "HttpWebRequest" google ich jetzt erstmal, danke. :)

    EDIT: So wie ich das verstanden habe, braucht man dafür den Namen des Objekts. Allerdings weiß ich nicht, wie ich den herausfinden soll, weil der Button in einem Flashobjekt ist.

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