Maus klicken lassen, auf bestimmte Koordinaten (VB 2010 Express)

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Fritz94.

    Maus klicken lassen, auf bestimmte Koordinaten (VB 2010 Express)

    Hey, ich habe ein kleinen Hänger.
    Undzwar möchte ich gerne, dass die Maus auf bestimmte Koordinaten klickt.
    Also ich habe eine TextBox wo Koordinaten gespeichert werden.
    Sprich : Der Nutzer drückt, auf ein Feld und diese Koordinaten werden eingespeichert.
    Nun möchte ich, dass die Maus dann auf die selben Koordinaten klickt!

    Also z.B.
    Mausklick = textbox.text <- Also so halt, ich weiß wie man sie auf bestimmt Koordinaten klicken lassen kann,
    Aber ich brauche, dass man diese Individuel bestimmen kann!


    Danke

    *Topic verschoben*

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Klar musst du "feste" Koordinaten angeben.
    Du musst dir das halt umbauen. Koordinaten = New Point(TextboxX.Text, TextBoxY.Text).

    Wobei das wieder unsauberer Code-Stil ist, aber ich schätze das es einfacher zu verstehen ist.
    Und du solltest dir nochmal die Grundlagen ansehen.


    Mfg.
    SAR
    Zum klicken nur

    VB.NET-Quellcode

    1. Private Declare Sub mouse_event Lib "user32" _
    2. (ByVal dwFlags As Integer, ByVal dx As Integer, _
    3. ByVal dy As Integer, ByVal cButtons As Integer, _
    4. ByVal dwExtraInfo As Integer)
    5. mouse_event(&H2, 0, 0, 0, 0)
    6. mouse_event(&H4, 0, 0, 0, 0)
    Und wo muss ich da jetzt eintragen welche bzw wie oft die maustaste gedrückt werden soll ?
    Sorry bin nunmal Anfänger, und das sieht so kompliziert aus in den Tuts!
    Und habe atm Prüfungs Stress, deswegen lerne ich das nur nebensächlich :)
    Das einmal in die globale Klassendeklaration hauen.

    VB.NET-Quellcode

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


    Aufruf wie folgt:

    VB.NET-Quellcode

    1. Windows.Forms.Cursor.Position = New Point(X, Y) 'Hier wird die Maus auf die Koordinaten geschoben
    2. mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'Damit wird die linke Maustaste gedrückt
    3. mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) 'Damit wird die linke Maustaste losgelassen

    Ich hoffe, dass es selbstverständlich den Point um dein X und Y zu ergänzen.



    Mfg.
    SAR
    So, habe wieder ein Prob, aber ich weiß nicht woran es liegt ...

    Timer1

    VB.NET-Quellcode

    1. Timer1.Enabled = True
    2. Timer1.Interval = 100
    3. Dim starthotkey, stophotkey As Boolean
    4. stophotkey = GetAsyncKeyState(Keys.F4)
    5. starthotkey = GetAsyncKeyState(Keys.F3)
    6. If starthotkey = True Then
    7. Me.Close()
    8. End If
    9. If stophotkey = True Then
    10. Label1.Show()
    11. End If


    Form1

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer


    Was habe ich nu schon wieder falsch gemacht ? ._.
    Also ich wollte einfach das man den Button, wenn das Prog läuft, per Hotkey bzw einer taste strten kann.
    Also man drückt z.B. F11, und der Button Start wird im Programm gedrückt ...

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Fritz94“ ()

    bei Form1_load

    VB.NET-Quellcode

    1. Timer1.start()


    bei dem timer1

    VB.NET-Quellcode

    1. Dim starthotkey, stophotkey As Boolean
    2. stophotkey = GetAsyncKeyState(Keys.F4)
    3. starthotkey = GetAsyncKeyState(Keys.F3)
    4. If starthotkey = True Then
    5. Me.Close() 'das ist nur so als bsp
    6. End If
    7. If stophotkey = True Then
    8. Me.Close() 'das ist nur so als bsp
    9. End If


    Bei mir wird bei F4) ein Fehler angezeigt ...
    Was habe ich nun wieder falsch geamcht ?
    EDIT : Bin selbst drauf gekomm x.x die Lösung ist ja um einiges einfacher als das, was ich vorher zusammgekritzelt hab xD

    Form1-Load

    VB.NET-Quellcode

    1. KeyPreview = true


    Form1_KeyDown

    VB.NET-Quellcode

    1. Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    2. If e.KeyCode = Keys.F5 Then
    3. Me.Close()
    4. End If
    5. End Sub
    6. End Class


    -> hab das eben per hand geschrieben, also nicht kopiert. Wenn Fehler gefunden werden, ihr wisst bestimmt was ich meine ^^

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

    Habs 5mins später dan rausgefunden x.x
    Es ist irgendwie immer so einfach, nur ich finds nie X(
    Der hotkey etc funkt jetzt ! :D

    Aber ein anderes Pob -.-
    undzwar
    Meine maus bewegt sich auf eine bestimmte Position,z.B. (500, 900).
    Sie macht einen Doppelklick.
    So nun sollte es einfach den Cursor von (500, 900) auf (600,900) bewegen, und dann wieder auf (500, 900) ...
    Doch er bewegt die Maus bzw den Cursor nicht X( ...

    Start Button

    VB.NET-Quellcode

    1. Cursor.Position = New Point(TextBox1.Text, TextBox2.Text)
    2. mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    3. mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    4. mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    5. mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    6. Threading.Thread.Sleep(200)
    7. Cursor.Position = New Point(TextBox5.Text, TextBox6.Text)
    8. mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    9. mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    10. Threading.Thread.Sleep(150)
    11. Cursor.Position = New Point(TextBox1.Text, TextBox2.Text)
    12. Cursor.Position = New Point(TextBox5.Text, TextBox6.Text)


    Wieso bewegt er den Cursor am Schlus nicht mehr ?