Zur 3. Frage würde ich das so angehen, dass du die X und Y Koordinaten der Maus zwischenspeicherst, und diese dann mit den aktuellen Koordinaten vergleichen lässt (mit einem 0.0 Wait Abstand, vllt. auch mehr). Sollten die 'zwischengespeicherten' und die 'aktuellen' Koordinaten NICHT übereinstimmen, wurde der Cursor demnach bewegt.

Diese Abfrage würde ich dann als Bedingung nutzen, ob der Menüpunkt durch den Cursor aktualisiert werden soll.