Hallöchen.
Habe eine kurze Frage:
Lässt sich die Mausgeschwindigkeit noch etwas erhöhen?
Mousemove(x, y, 0) ist mir zu langsam
Und die Systemeinstellung nimmt ja leider keinen Einfluss darauf
Mir kommt das so lange vor
Liebe Grüße
Elodie
Hallöchen.
Habe eine kurze Frage:
Lässt sich die Mausgeschwindigkeit noch etwas erhöhen?
Mousemove(x, y, 0) ist mir zu langsam
Und die Systemeinstellung nimmt ja leider keinen Einfluss darauf
Mir kommt das so lange vor
Liebe Grüße
Elodie
Hi
ja
einfach
sleep einfügen
also
z.b:
mousemove( 445, 567 )
sleep(6000)
1000 = 1 sec
http://www.autoit.de/dokumentation_…s/MouseMove.htm
MouseMove (x, y [, speed] )
x The screen x coordinate to move the mouse to.
y The screen y coordinate to move the mouse to.
speed [optional] the speed to move the mouse in the range 1 (fastest) to 100 (slowest). A speed of 0 will move the mouse instantly. Default speed is 10.
MfG xXTobi93Xx
Hallo
Ja, das ist mir klar.
Aber wenn man nun das Skript weiter unten ausführt, merkt man, dass die Maus sehr langsam ist. Wenn man nämlich bei Systemsteuerung die Mausgeschwindigkeit ganz hoch setzt und die Maus dann per Hand so bewegt, wie mein Skript das macht, dann ist man per Hand zwar unpräziser, aber meiner Meinung nach schneller.
Kann das auch an Autoit liegen? Dass Autoit das Skript nicht schnell genug macht?
$x = 0
$y = 0
while(true)
mousemove($x, $y, 0)
if $x >= @DesktopWidth then
$x = 0
$y = $y+1
Endif
$x = $x+1
if $y = @desktopheight/4 then
mousemove(@desktopwidth/2, @desktopheight/2,0)
exit
endif
Wend
Liebe Grüße
Elodie
Ganz einfach so:
mousemove($x,$y,1)
wenns dir dann noch zu langsam is weis ich auch nicht
Mfg
Was hast du mit diesem Skript vor? Das hat nichts mit der Geschwindigkeit der Maus zu tun!
das Skript sollte nur verdeutlichen, was ich meine Mir war es nur durch dieses Skript aufgefallen und da hatte ich mich nur aus Interesse gefragt, woran das liegen könnte. Schließlich steht ja in der Autoit Hilfe schon drin, dass die Maus durch Mausgeschwindigkeit 0 sofort da sein sollte. So dachte ich ganz einfach, dass theoretisch die Maus auch sofort an dem letzten Pixel, bevor mein Skript beendet wird, sein sollte.
Bei mir Funkt das mit 0 aber meistens nicht so richtig, deswegen verwnde ich lieber 1, und so viel Unterschied is ja dann auch nicht mehr dazu
Mfg
in der hilfe steht:
-------------------------------------------------------------
speed [optional] the speed to move the mouse in the range 1 (fastest) to 100 (slowest). A speed of 0 will move the mouse instantly. Default speed is 10.
-------------------------------------------------------------
100 ist langsam ind 1 ist schnell.
Die 0 ist also Default und ich habe das Gefühl die Geschwindigkeit variiert dabei. Am Anfang bewegt sie sich schnell und je näher sie zum "zielpunkt" kommt desto langsamer wird sie.
ich habe dazu aber auch noch eine frage:
ich habe ein Script das MouseMove(700, 700, 2) benutzt. jetzt ist mousespeed 2 (MouseMove(700, 700, 2))aber zu langsam und 1 (MouseMove(700, 700, 1))zu schnell. mit 2.3 oder 2.7 gehts auch nicht. hat jemand eine idee?
Hi Fischi84,
die Lösung die ich mir ausgedacht habe (und die zu funktionieren scheint)
basiert auf der Berechnung von "Zwischenpunkten" zwischen den Koordinaten
des Start- und des Zielpunktes. Diese Zwischenpunkte werden nun nacheinander
mit einem kleinen Sleep() anvisiert und können somit die Mausgeschwindigkeit beeinflussen.
(Mehr Zwischenpunkte und/oder größere Sleepzeit = Langsamere Mausbewegung)
Ich habe 2 Beispiele (1. ist zur Erklärung - 2. ist zur Problemlösung) mit denen du gerne
experimentieren kannst!
Falls Fragen aufkommen, hoffe ich sie beantworten zu können (bin recht bald unterwegs -> off)
oder, dass jemand aus dem Forum sie klären kann
Den Quellcode möchte ich nun nach all dem "Gefasel" nicht vorenthalten
#cs
P(a,b)
S(c,d)
^PS = (c-a, d-b) ;PS ist der Richtungsvektor von der Geraden die zwischen P und S liegt!
Gerade = ^PS * x + P ; x ist der Faktor (bei 1/2 ist es genau die Hälfte zwischen den Punkten P und S)!
Fehlerbehandlung ist nicht implementiert, da es sonst zu unübersichtlich werden würde!
by XovoxKingdom
#ce
Func GetPoint($a, $b)
Dim $c[2]
$c[0] = $b[0] - $a[0]
$c[1] = $b[1] - $a[1]
Return $c
EndFunc ;==>GetPoint
Func Beispiel1();Anlehnung an Formel (oben)
[/autoit] [autoit][/autoit] [autoit]Dim $P[2];Punkt P
Dim $S[2];Punkt S
Dim $Q[2]; Punkt der Berechnung (liegt im Beispiel genau in der Hälfte - also zwischen P und S)
[/autoit] [autoit][/autoit] [autoit]$P[0] = 0;Initialisierung von dem Punkt P
$P[1] = 0
$S[0] = 100;Initialisierung von dem Punkt S
$S[1] = 100
$PS = GetPoint($P, $S);In PS wird der Richtungsvektor gespeichert
[/autoit] [autoit][/autoit] [autoit]$Q[0] = $PS[0] / 2 + $P[0];Dem Punkt Q (zwischen P und S) wird nun ein Wert zugewiesen
$Q[1] = $PS[1] / 2 + $P[1];Die /2 sorgt für die Hälfte der Distanz zwischen P und S
MouseMove($P[0], $P[1])
MsgBox(0, "Position", MouseGetPos(0) & ", " & MouseGetPos(1), 1);Punkt P sollte angezeigt werden
Sleep(500)
[/autoit] [autoit][/autoit] [autoit]MouseMove($S[0], $S[1])
MsgBox(0, "Position", MouseGetPos(0) & ", " & MouseGetPos(1), 1);Punkt S sollte angezeigt werden
Sleep(500)
[/autoit] [autoit][/autoit] [autoit]MouseMove($Q[0], $Q[1])
MsgBox(0, "Position", MouseGetPos(0) & ", " & MouseGetPos(1), 1);Der Punkt zwischen P und S sollte angezeigt werden (Punkt Q)
EndFunc ;==>Beispiel1
[/autoit] [autoit][/autoit] [autoit];:::Anwendungsbeispiel::::
Func Beispiel2()
Dim $x[2], $y[2], $z[2]
$max = 30;je höher der Wert, desto öfter wird die Maus bewegt -> langsamer
$x[0] = 100
$x[1] = 100
$y[0] = 200
$y[1] = 500
$w = GetPoint($x, $y)
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $max
$z[0] = $w[0] / $max * $i + $x[0]
$z[1] = $w[1] / $max * $i + $x[1]
MouseMove(Round($z[0], 0), Round($z[1], 0), 1)
Sleep(15); Diese Zeit kannst du beliebig anpassen
Next
EndFunc ;==>Beispiel2
MsgBox(0, "Beispiel 1", "Beispiel 1 beginnt nun!", 2)
Sleep(1000)
Beispiel1()
MsgBox(0, "Beispiel 1", "Beispiel 1 ist nun abgeschlossen!", 2)
Sleep(2000)
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, "Beispiel 2", "Beispiel 2 beginnt nun!", 2)
Sleep(1000)
Beispiel2()
MsgBox(0, "Beispiel 2", "Beispiel 2 ist nun abgeschlossen!", 2)