2017-05-26 1 views
-1
;MouseGetPos, X, Y 
;msgbox %x%, %y% 
;MouseClick, left, 113, 376 
MyArray := {} 
MyArray.insert("cat") 
CoordMode,Mouse,Screen 
F1::  
    msgbox % MyArray 
    while (%var% != "false"){ 
     MouseGetPos, X, Y 
     msgbox %x%, %y% 
     MyArray.insert(x, y) 
     msgbox %MyArray% 

    } 
F2:: 
    Pause 
F3:: 
    Reload 
F4:: 
    ExitApp 
F5:: 
    var:="false" 
    Run C:\Windows\Notepad.exe "C:\Users\YUKI\Desktop\Test.txt" 
    sleep 2000 
    send {Enter} 
    sleep 2000 
    send {Enter} 
    FileAppend, %L% 
    sleep 4000 
    send {Enter} 
    send {alt} 
    send {a} 
    send {o} 
    send {Enter} 

Je veux insérer un getMousePosition dans une liste, je pense que je suis initialisant le tableau de manière incorrecte, ou l'insertion des variables x et y incorrectementAutoHotKey Tableau

+0

Lorsque vous imprimez msgbox, imprimez une liste vide || 0, vous devriez au moins imprimer une liste contenant 0 & "chat" – user2957041

Répondre

0

Array.Insert() est pour les tableaux indexés (MyArray := []) mais vous avez déclaré un tableau associatif (MyArray := {}).
Les tableaux associatifs sont pour des paires clé/valeur - par exemple MyArray.Cat := 1
Les tableaux indexés ont des clés automatiques de nombres croissants - par exemple MyArray[1] := "Blah".
En général, avec un tableau indexé, vous devez ajouter de nouveaux éléments à la fin avec MyArray.push("Blah") plutôt que d'utiliser .insert() pour insérer à un point spécifique.
Pour stocker les positions précédentes et comme vous voulez probablement un tableau indexé, donc changer MyArray := {}-MyArray := [] et changer MyArray.insert(x, y) à MyArray.push({x: x, y: y})
Notez ici que je suis l'insertion d'un tableau associatif tenant x et y paires clé/valeur du tableau indexé.
Pour accéder aux coordonnées individuelles, ce serait MyArray[5].x ou MyArray[5].y
MyArray.Length() vous dira combien d'éléments il y a dans le tableau.

Voir les documents here pour plus d'informations.