Maus makiert nicht

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Maus makiert nicht

    Guten Abend,

    ich will, dass meine Maus automatisch eine beliebige stelle im Desktop makiert, dessen Koordinaten ich auf vb festgelegt habe.
    Es klickt auf die erste Koordinate und dann auf die zweite, statt dass es auf die erste klickt und es zur zweiten Koordinate zieht.

    Quellcode

    1. Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal _
    2. dwFlags As Integer, ByVal dx As Integer, _
    3. ByVal dy As Integer, ByVal cButtons As Integer, ByVal _
    4. dwExtraInfo As Integer)
    5. Private Const MOUSEEVENTF_LEFTDOWN = &H2
    6. Private Const MOUSEEVENTF_LEFTUP = &H4



    Quellcode

    1. Me.Cursor = New Cursor(Cursor.Current.Handle)
    2. Cursor.Position = New Point(555, 700)
    3. mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    4. Me.Cursor = New Cursor(Cursor.Current.Handle)
    5. Cursor.Position = New Point(850, 701)
    6. mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)


    so habe ich es versucht.

    Liebe Grüße
    @Catfish28 Probier mal

    VB.NET-Quellcode

    1. Cursor.Position = new Point(10, 10)
    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!
    Naja, da ist ja auch mit y = 700 und y = 701 nicht viel Auswahl-Rechteck-Höhe. Bau vor dem Maustaste-Loslassen-Befehl einen Sleep-Befehl ein und Du siehst, wie das Ergebis aussieht. Sehr schmal. Korrigiere die Koordinaten und es geht. Und bau noch Pausen ein, sonst geht's zu fix.
    Beispiel:

    VB.NET-Quellcode

    1. Me.Cursor = New Cursor(Cursor.Current.Handle)
    2. Cursor.Position = New Drawing.Point(555, 600)
    3. mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    4. Me.Cursor = New Cursor(Cursor.Current.Handle)
    5. Threading.Thread.Sleep(10)
    6. Cursor.Position = New Drawing.Point(850, 751)
    7. Threading.Thread.Sleep(10)
    8. mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Sorry, da stand einer auf der Leitung.
    @Catfish28 Was ganz genau willst Du erreichen?
    Wenn Du mit der Maus auf dem Desktop ein Rechteck aufziehst, ist das nur so lange markiert, wie die Maustaste gedrückt ist.
    Wenn Du die Maustaste loslässt, ist die Markierung weg.
    Um Deine Markierung zu sehen, müsstest Du dem Desktop den Fokus zuweisen.
    Was aber mit dem Code von @VaporiZed funktioniert, Du kannst ein Desktop-Icon markieren, wenn es Dein Maus-Rechteck überschneidet.
    ====
    Die Zuweisung Me.Cursor = New Cursor(Cursor.Current.Handle) ist nicht erforderlich.
    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!

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