Maus Koordinaten in Variable geben

  • Hi
    Ich bins mal wieder

    ich machs kurz und bündig (ist bestimmt für euch en klacks)

    Wollte die Maus koordinaten an eine Variable übergeben die dann 2 Arrays hat
    also x und y koordinaten halt die die jetzige kooredinaten enthält

    wollt ich dann später mit nem MouseDown,MouseMove,MouseUp Func Befehl benutzen

    hab schon nach arrays gesucht aber was ich finde ist eher für kompliziertere sachen
    wenns nicht mit arrays geht würde ich auch 2 variablen in kauf nehmen

    thx im vorraus

    Einmal editiert, zuletzt von MarcoPolo (21. März 2008 um 11:51)

  • [autoit]

    #include <Array.au3>
    Dim $version = _ArrayCreate("Ablauf", "Frankatur", "FRZ", "Kond")
    Dim $version12=_ArrayCreate(231, 240, 190, 189)
    Dim $version13=_ArrayCreate(231, 240, 190, 320);untested
    Dim $version14=_ArrayCreate(209, 301, 308, 320);ok
    Dim $version15=_ArrayCreate(229, 321, 328, 340)
    Dim $version16=_ArrayCreate(232, 324, 331, 343);ok

    [/autoit][autoit][/autoit][autoit]

    If WinExists(" (6.12") Then
    $version = $version12
    ElseIf WinExists(" (6.13") Then
    $version = $version13
    ElseIf WinExists(" (6.14") Then
    $version = $version14
    ElseIf WinExists(" (6.15") Then
    $version = $version15
    ElseIf WinExists(" (6.16") Then
    $version = $version16
    EndIf

    [/autoit]

    und später dann


    [autoit]

    $abl_id= $version[0]
    $frank_id=$version[1]
    $frz_id=$version[2]
    $kond_id=$version[3]

    [/autoit]

    Ich nutze das so um verschiedene Versionen abzufangen,

    man kann dann natürlich auch direkt an das Array gehen aber ich wollte die Funktion recht neutral gestalten :)

    Bei mir sind es die Nummern des Tabindex der bei verschiedenen Versionen anders ist,

    dort könnten aber auch Koordinaten stehen


    [autoit]


    #include <Array.au3>
    Dim $mousex = _ArrayCreate(5, 10, 20, 30, 400)
    Dim $mousey = _ArrayCreate(5, 10, 20, 30, 400)
    for $i = 1 to $mousex[0]
    MouseClick ( "LEFT" ,$mousex[$i], $mousey[$i])
    Next

    [/autoit]

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    2 Mal editiert, zuletzt von Dietmar (21. März 2008 um 11:02)

  • und wie fängt man damit jetzt die aktuellen mauskoordinaten ab?

    ich muss die ja später einfügen zb so

    [autoit]


    MouseDown("Left")
    MouseMove( $Xkoordinate + 10 , $Ykoordinate - 15 )
    MouseUp("Left")

    [/autoit]

    nur muss halt die X und Y koordinate immer überprüft werden die sich ja beim mosemove wieder neue koordinaten ergeben

  • ich dachte du kennst die Koordinaten und willst die aus dem Array auslesen, was hast Du genau vor ?

    Bei dem unteren Muster macht er 4 KLicks bei

    10/10

    20/20

    30/30

    400/400

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    4 Mal editiert, zuletzt von Dietmar (21. März 2008 um 11:18)

  • also ich will was scripten, das ein fenster per knopfdruck (hotkeyset,func)
    um ein paar pixel verschoben wird
    die maus soll dafür vorher manuell dort hin gelegt werden, wo man es verschieben kann
    damit die maus es nicht exakt auf diese koordinaten legt (weil man die maus ja manuell wo anders hingelegt haben könnte) sollte er also vorher die koordinaten der maus abrufen
    über das au3info tool kann ich sie zwar manuell auslesen aber der script soll dies ja von alleine erledigen

    falls das auslesen der mauskoordinaten wärend des scripts nicht möglich ist oder es überhaupt nichts mit arrays am hut hat enschuldige ich mich dafür

  • Das geht dann wohl eher in deine Richtung

    [autoit]


    $pos = MouseGetPos()

    [/autoit][autoit][/autoit][autoit]

    MouseDown("Left")
    MouseMove( $pos[0] + 10 , $pos[1] - 15 )
    MouseUp("Left")

    [/autoit]


    man sollte nur nur nen Startwert oder wait window oder so mitgeben,

    sonst sieht das sicher lustig aus.

    Hier Test:

    [autoit]

    #include <Array.au3>
    for $i = 1 to 5
    $pos = MouseGetPos()
    MsgBox(0,$pos[0] + 10 , $pos[1] - 15 )
    Next

    [/autoit]


    Warum nimmst Du nicht MouseClick?

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • So wie ich das lese (was übrigens nicht gerade einfach ist, bemühe dich bitte um klare Sätze und achte nach Möglichkeit auf Rechtschreibung und Zeichensetzung) willst du ein Fenster nach den aktuellen Mauskoordinaten verschieben, dafür kann man einfach

    [autoit]

    WinMove()

    [/autoit]

    nehmen.
    Also in deinem Fall:

    [autoit]

    $Mausposition = MouseGetPos()
    Dim $X_Verschieben = $Dein_Wert, $Y_Verschieben = $Dein_Wert
    WinMove("Der Festertitel", "Der Fenstertext(Optional, fals nicht vorhanden, Nullstring einsetzen)", $Mausposition[0]+$X_Verschieben, $Mausposition[1]+Y_Verschieben)

    [/autoit]

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)