Mausklick simulieren und dabei die Maus verschieben

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von chke93.

    Mausklick simulieren und dabei die Maus verschieben

    Hallo,
    ich brauch ein Programm, dass einen Mausklick simuliert und dabei die Maus Position ändert.
    Das Programm starte ich extern über Actionscript 2.0, dann öffnet es sich unsichtbar, setzt die Maus auf z.B. 500,500 und verschiebt sie nach 500,510.
    Das gleiche brauche ich dann auch mit dem Mausrad, aber dass sollte ja nicht viel anders sein.

    Ich weiß zwar wie ich die Maus Positioniere, aber nicht während des Klicks.

    Vielen Dank für eure Hilfe

    Christian

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    3. Private Const MOUSEEVENTF_ABSOLUTE = &H8000
    4. Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
    5. Private Const MOUSEEVENTF_MIDDLEUP = &H40
    6. Private Const MOUSEEVENTF_MOVE = &H1
    7. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    8. Try
    9. mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0)
    10. MsgBox("lol")
    11. mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
    12. Catch ex As Exception
    13. End Try
    14. End Sub
    15. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „xd-franky-5“ ()

    Hallo xd-franky-5,
    so etwas hatte ich auch schon. Aber ich habe mal deinen Code kopiert und es kommt wieder ein Fehler
    Spoiler anzeigen
    Ein Aufruf an die PInvoke-Funktion "Mauspositionierer!Mauspositionierer.Form1::mouse_event" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur

    Wenn man

    VB.NET-Quellcode

    1. Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    in

    VB.NET-Quellcode

    1. Declare Function mouse_event Lib "user32.dll" Alias "mouse_event" (ByVal dwFlags As Int32, ByVal dX As Int32, ByVal dY As Int32, ByVal cButtons As Int32, ByVal dwExtraInfo As Int32) As Boolean
    ändert funktioniert es.

    Vielen Dank für deine Hilfe
    @xd-franky-5:: Du hast die VB6-Deklaration verwendet. Gugst Du hier.
    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!
    So hier habe ich nochmal den ganzen Code für die Maussimulation:

    VB.NET-Quellcode

    1. Declare Function mouse_event Lib "user32.dll" Alias "mouse_event" (ByVal dwFlags As Int32, ByVal dX As Int32, ByVal dY As Int32, ByVal cButtons As Int32, ByVal dwExtraInfo As Int32) As Boolean
    2. Private Const MOUSEEVENTF_ABSOLUTE = &H8000
    3. Private Const MOUSEEVENTF_LEFTDOWN = &H2
    4. Private Const MOUSEEVENTF_LEFTUP = &H4
    5. Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
    6. Private Const MOUSEEVENTF_MIDDLEUP = &H40
    7. Private Const MOUSEEVENTF_MOVE = &H1
    8. Private Const MOUSEEVENTF_RIGHTDOWN = &H8
    9. Private Const MOUSEEVENTF_RIGHTUP = &H10
    10. Private Const MOUSEEVENT_WHEEL = &H800


    VB.NET-Quellcode

    1. mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    2. mouse_event(MOUSEEVENTF_MOVE, 0, 30, 0, 0)
    3. mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)


    Danke für eure Hilfe!

    Christian