Frage von GoITButler, 23

Hey alle zusammen! Ich will, dass dieses Script solange ausgeführt wird, bis ich F2 drücke. Kann mir da einer helfen?

Das Script: 

HotKeySet ("{F1}", "_anschalten") 
HotKeySet ("{F2}", "_ausschalten")
Func _anschalten ()
$aktiv = True
EndFunc
Mousemove (0,0)
Mousemove (0,0)
Func _ausschalten ()
$aktiv
EndFunc
Antwort
von Suboptimierer, 11
  • Zweimal Mousemove(0,0) ergibt keinen Sinn
  • in _ausschalten bringt $aktiv nichts. Dort müsste wahrscheinlich $aktiv = false stehen.
  • "solange" ist ein Schlüsselwort für eine Schleife. Du hast keine Schleife (oder rekursive Funktion) in deinem Skript

Aufbau:

' Dein bisheriger Code
while($aktiv)
  ' Mach etwas
wend

Schau mal hier: https://de.wikibooks.org/wiki/AutoIt:_Endlosschleife

Antwort
von PWolff, 6

Kannst du den Code bitte mal als Code formatieren?

Vermutlich soll das ungefähr so aussehen:

HotKeySet ("{F1}", "_anschalten") 
HotKeySet ("{F2}", "_ausschalten")

Func _anschalten ()
$aktiv = True
EndFunc

Mousemove (0,0)
Mousemove (0,0)

Func _ausschalten ()
$aktiv
EndFunc

1. In _ausschalten wird mit $aktiv nichts gemacht.

Vermutlich müsste dort entweder

  $aktiv = False

oder

  $aktiv=

stehen.

2. Du hast die MouseMove-Anweisungen "freischwebend" im Skript - sie müssten aber wiederholt ausgeführt werden.

Ob es reicht, die beiden Anweisungen in eine Schleife zu setzen, weiß ich nicht - es könnte aber sein, dass der Hotkey zum Ausschalten nie abgefragt wird, weil diese Abfrage im selben Thread wie die Endlosschleife läuft.

Entweder startest du die Schleife in einem eigenen Thread (wobei ich nicht weiß, ob AutoIt threadübergreifende Variablen hat - ggf. musst du eine solche definieren), oder du nimmst statt einer Schleife ein timergesteuertes Ereignis (mit möglichst kurzer Timerdauer).

Antwort
von GoITButler, 7

HotKeySet ("{F1}", "_anschalten")
HotKeySet ("{F2}", "_ausschalten")

Func _anschalten ()
$aktiv = True
EndFunc
Mousemove (374,1245)

Mousemove (214,1142)
Func _ausschalten ()
$aktiv
EndFunc

so sieht es aus habe vergessen das andere scrip zu kopieren

ja ist lange her wo ich es gemacht habe und irgendwie will es nicht bei mir klappen 

ich will ja nur das die maus sich von links nach rechts solange widerholt bis ich es ausmache so das es mehrer stunden lang die gleiche bewebung macht 

danke für die ersten antworten :)

Antwort
von DaMenzel, 8

Ich weiß nicht wie es bei AUTO-IT geht, aber grundsätzlich würde ich es in eine Bedingung mit einer Schleife setzen. 

Antwort
von Masterman431, 8

1. Solltest dazuschreiben, welche sprache das ist (ist denk ich Powershell, oder?)

2. Bitte schreib den Code in ein Code Fenster um Lesbarkeit zu ermöglichen

//Ich bin ein Codefenster

Write-Host "Hab mich lieb :c"

Kommentar von Suboptimierer ,

Er ging davon aus, dass das Tag "AutoIT" reicht. Das ist eine am Visual Basic angelehnte Skriptsprache. Es gibt sehr viele Gemeinsamkeiten.

Kommentar von Masterman431 ,

IH! mit vb script hab ich nix am hut^^

Ein hoch auf die Objektorientierung xD

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten