Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Mausbewegung/Klicks durch Gui Button


  • Please log in to reply
22 replies to this topic
Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Hallo zusammen!

Ich weiß zwar das man mit dem gLabel (GoTo) ein Befehl mit "Run" auslösen kann aber irgendwie möchte es bei mir bei Button3 nicht funktionieren kann mir einer helfen?

Wäre echt nett..

 

Version = 1.0
Text := "Makro - Maus Klicker"


Gui, Add, Picture, x0 y0 h300 w400, D:\Bilder\######.jpg
Gui, Add, Button, x10 y20 gButton3, Makro ;Button Name [Makro]
Gui, Add, Button, x220 y20 gButton2, ### ;Button Name [####]
Gui, Add, Button, x130 y20 gButton, ### ;Button Name [####]
Gui, Font, s20 cred bold, Comic Sans ms
Gui, Add, Text, x60 y50 +backgroundtrans, %Text%
Gui, Show, h300 w400, Makro %version%
return


;;;Label

Button:
run, http://##########
return

Button2:
run, www.########
return



Button3:
run:
Loop
{
ControlClick, , A,, Left, 1,  x592 y219 
Sleep, 10
ControlClick, , A,, Left, 1,  x657 y178 
Sleep, 10
ControlClick, , A,, Left, 1,  x706 y197 
Sleep, 10
ControlClick, , A,, Left, 1,  x758 y218 
Sleep, 10
ControlClick, , A,, Left, 1,  x812 y243 
Sleep, 10
ControlClick, , A,, Left, 1,  x696 y276 
Sleep, 10
ControlClick, , A,, Left, 1,  x1017 y459 
Sleep, 10
ControlClick, , A,, Left, 1,  x974 y491 
Sleep, 10
ControlClick, , A,, Left, 1,  x1147 y555 
Sleep, 10
ControlClick, , A,, Left, 1,  x1096 y580 
Sleep, 10
ControlClick, , A,, Left, 1,  x967 y590 
Sleep, 10
ControlClick, , A,, Left, 1,  x917 y566 
Sleep, 10
ControlClick, , A,, Left, 1,  x900 y531 
Sleep, 10
ControlClick, , A,, Left, 1,  x619 y327 
Sleep, 10
ControlClick, , A,, Left, 1,  x677 y362 
Sleep, 10
ControlClick, , A,, Left, 1,  x726 y320 
Sleep, 10
ControlClick, , A,, Left, 1,  x773 y295 
Sleep, 10
ControlClick, , A,, Left, 1,  x854 y289 
Sleep, 10
ControlClick, , A,, Left, 1,  x896 y304 
Sleep, 10
ControlClick, , A,, Left, 1,  x873 y390 
Sleep, 10
ControlClick, , A,, Left, 1,  x535 y241 
Sleep, 900000
}
Return






GuiClose:
Exitapp
return

..sorry bin noch Anfänger! Danke schonmal im Vorraus für eure Hilfe! ;(



SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Was willst du mit dem ControlClick und was mit dem run: bewirken?



Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Mit Run möchte ich das er in Schleife die linke Maustaste Drückt zu den besagten Koords!

Aber ich befürchte das man diese mit "run" nicht auslösen kann oder?

Ich hab viel im Internet gegoogelt aber nirgenswo etwas gefunden weil ich möchte das die Maus Aktion erst aktiviert wird nach dem ich "Button3" anklicke..

Dazu muss ich sagen das mein Englisch sehr schlecht ist und vieles in Englisch erklärt ist!



SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

1. Es gibt auch eine komplette deutsche Doku: http://ragnar-f.github.com/docs/

2. Das was du suchst, ist wohl eher MouseClick statt ControlClick. ControlClick ist sozusagen ein "unsichtbarer" Klick.

3. Das run: brauchst du nicht

4. Willst du wirklich eine endlose Schleife?



Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Ja bis ich wieder ein Button im Gui bestätige.

 

Ah ok.. ich seh schon mit MousClick klappts! Danke dir!



Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Jetzt habe ich ein neues Problem, genauer gesagt zwei! -.-

Wenn ich jetzt den Makro starte dann reagiert er nur einmal wenn ich auf Makro drücke beim zweiten drücken macht er nichts obwohl ich zuvor den "Pause" Button bestätige..

Was mache ich falsch?

Ich will das der MouseClick läuft wenn ich auf Makro drücke(Das macht er) aber wenn ich dann auf Pause drücke er die Schleife unterbricht und beim erneuten drücken auf Makro er die Schleife wieder startet..

Hilfe ;(

Version = 1.0
Text := "###"


Gui, Add, Picture, x0 y0 h300 w400, D:\Bilder\###.jpg
Gui, Add, Button, x10 y20 gButton3, Makro ;Button Name [Makro]
Gui, Add, Button, x220 y20 gButton2, ### ;Button Name [###]
Gui, Add, Button, x10 y50 gButton4, Pause
Gui, Add, Button, x130 y20 gButton, ### ;Button Name [###]
Gui, Font, s20 cred bold, Comic Sans ms
Gui, Add, Text, x60 y50 +backgroundtrans, %Text%
Gui, Show, h300 w400, ### %version%
return


;;;Label

Button:
run, www.###
return

Button2:
run,www.###
return


Button3:

Loop
{
MouseClick, left,  531,  408
Sleep, 100
MouseClick, left,  582,  367 
Sleep, 100
MouseClick, left,  658,  332 
Sleep, 100
MouseClick, left,  703,  350 
Sleep, 100
MouseClick, left,  683,  457
Sleep, 100
MouseClick, left,  791,  425
Sleep, 100
MouseClick, left,  759,  371
Sleep, 100
MouseClick, left,  1024,  632
Sleep, 100
MouseClick, left,  975,  650 
Sleep, 100
MouseClick, left,  1165,  709
Sleep, 100
MouseClick, left,  1094,  749 
Sleep, 100
MouseClick, left,  963,  759 
Sleep, 100
MouseClick, left,  927,  739 
Sleep, 100
MouseClick, left,  929,  668 
Sleep, 100
MouseClick, left,  627,  491
Sleep, 100
MouseClick, left,  664,  502
Sleep, 100
MouseClick, left,  719,  469
Sleep, 100
MouseClick, left,  771,  446
Sleep, 100
MouseClick, left,  845,  436
Sleep, 100
MouseClick, left,  896,  457 
Sleep, 100
MouseClick, left,  874,  559
Sleep, 900000
}
Return

Button4:
Suspend
Return


GuiClose:
Exitapp
return



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Ich würde eher ein While-Loop benutzen.

Sobald du auf den Knopf drückst veränderst du einen Wert.

Also der Code für einen kleineren Loop sieht so aus

 

#Persistent
Settimer,StartStop,3000
Loop
{
While var
{
ToolTip, On
}
Sleep,1000
}

StartStop:
var:=!var
return


Visit the new forum ahkscript.org.

http://ahkscript.org


Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Hmm.. könntest Du mir dazu ein Beispielcode mit Erklärung geben wie das ganze dann aussehen würde weil ich bin noch recht am Anfang was das alles angeht. ;(

 

 

Ich habe keine Erfahrung mit dynamischen Variablen! sad.png(

Es handelt sich doch hier um dynamische Variablen oder? ..hmm

 

Also ich habe die Suchfunktion genutzt und nach setTimer oder

Dynamisches Aufrufen einer Funktion

suchen lassen..werde hierraus aber nicht schlau: http://ragnar-f.gith...s/Functions.htm



Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Kann mir keiner weiter helfen? sad.png

 

 

 

Button3:
stop = 0
Loop
{
  If stop = 1
      Break
  ToolTip, %A_Index%
  Sleep, 1000




MouseClick, left,  126,  138
Sleep, 1
MouseClick, left,  539,  399
Sleep, 1
MouseClick, left,  594,  367 
Sleep, 1
MouseClick, left,  656,  337 
Sleep, 1
MouseClick, left,  712,  360 
Sleep, 1
MouseClick, left,  769,  380
Sleep, 1
MouseClick, left,  808,  415
Sleep, 1
MouseClick, left,  710,  434
Sleep, 1
MouseClick, left,  630,  488
Sleep, 1
MouseClick, left,  677,  515 
Sleep, 1
MouseClick, left,  735,  484
Sleep, 1
MouseClick, left,  775,  459 
Sleep, 1
MouseClick, left,  848,  446 
Sleep, 1
MouseClick, left,  898,  467 
Sleep, 1
MouseClick, left,  882,  549 
Sleep, 1
MouseClick, left,  1032,  622
Sleep, 1
MouseClick, left,  981,  644
Sleep, 1
MouseClick, left,  919,  734
Sleep, 1
MouseClick, left,  973,  749
Sleep, 1
MouseClick, left,  1150,  714
Sleep, 1
MouseClick, left,  1102,  740 
Sleep, 1
MouseClick, left,  385,  135
Sleep, 3000     
}
Return



Button4:
stop:=!stop
return

^^Mit "Button3:" starte ich den Makro und mit "Button4:" stoppe ich das ganze..

DAS ROBLEM: Wenn ich jetzt am Ende über Return "Sleep, 960000" eingebe dann startet er nachm stoppen nicht mehr! WIESO? Weis einer warum??



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
In der Lösung in der ich es basteln würde würdest du es nicht unbedingt verstehen, und das ist nicht Sinn der Sache, jede abdere Lösung ist ziemlich Zeitaufwendig, doch dafür reicht meine Zeit im Moment nicht aus.
Meine Lösung umfasst das Gebiet 2D Arrays sowie While Loop.
Informier dich mal über diese Themen, du musst sie aber nicht wirklich verstehen, da diese sehr sehr Kompliziert sind.

Visit the new forum ahkscript.org.

http://ahkscript.org


Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Könntest Du mir trotzdem deine Lösung posten?

Ich werd das dann versuchen nach und nach zu verstehen! Wäre dir sehr dankbar dafür!!!

 

Ich hab den Code den ich zuletzt gepostet hatte ein Teil Erfolg aber ich will Sleep 960000 doch da startet er nicht direkt nach dem ich stop und wieder aktivieren drücke



ruespe
  • Members
  • 567 posts
  • Last active: Dec 01 2014 07:59 PM
  • Joined: 17 Jun 2008

Dein Sleep dauert 16 Minuten. Soll das so sein? Falls ja, solltest du statt der Schleife einen Timer (=SetTimer) benutzen. Einen schlafenden Sleep kann man nämlich nicht abbrechen, einen wartenden Timer jedoch jederzeit.

 

@nnnik: mach es doch nicht so kompliziert. Du machst ihm ja Angst wink.png



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Ich hab doch noch hinbekommen es einfacher zu machen.

exec:
stop = 0
Loop
{
If stop = 1
Break
ToolTip, %A_Index%
Sleepandwaitforstop(1000) ;als beispel
Mousecklickleftandstop(126,138)
Sleep, 1
MouseClick, left, 539, 399
Sleep, 1
MouseClick, left, 594, 367
Sleep, 1
MouseClick, left, 656, 337
Sleep, 1
MouseClick, left, 712, 360
Sleep, 1
MouseClick, left, 769, 380
Sleep, 1
MouseClick, left, 808, 415
Sleep, 1
MouseClick, left, 710, 434
Sleep, 1
MouseClick, left, 630, 488
Sleep, 1
MouseClick, left, 677, 515
Sleep, 1
MouseClick, left, 735, 484
Sleep, 1
MouseClick, left, 775, 459
Sleep, 1
MouseClick, left, 848, 446
Sleep, 1
MouseClick, left, 898, 467
Sleep, 1
MouseClick, left, 882, 549
Sleep, 1
MouseClick, left, 1032, 622
Sleep, 1
MouseClick, left, 981, 644
Sleep, 1
MouseClick, left, 919, 734
Sleep, 1
MouseClick, left, 973, 749
Sleep, 1
MouseClick, left, 1150, 714
Sleep, 1
MouseClick, left, 1102, 740
Sleep, 1
MouseClick, left, 385, 135
Sleep, 3000
}
Return



Sleepandwaitforstop(time)
{
global
Loop, % time//50
{
if stop
return
sleep, 50
}
}

Mousecklickleftandstop(x,y)
{
Global
if !stop
Mouseclick,left,% x,% y
}

;ersetz in dem Loop z.B. sleep,100 durch Sleepandwaitforstop(100) und Mouseclick,left,162,111 durch Mousecklickleftandstop(162,111)
;die beiden Funktionen musst du auch einfach irgendwo in den Text
;zudem musst du das Gosub von Button 4 so verändern.
Button4:
stop:=!stop
if !stop ;sorgt dafür , dass man über diesen Knops Starten und stoppen kann
goto,exec 
return

Visit the new forum ahkscript.org.

http://ahkscript.org


Marshall666
  • Members
  • 45 posts
  • Last active: May 16 2013 04:03 PM
  • Joined: 09 Mar 2013

Danke das ihr mir helfen möchtet! =)

@ nnnik

Also mit deinem Script startet er ganz gewöhnlich und stopt ganz gewöhnlich, nur wenn ich dann wieder auf start klicke (Ich habe exec durch Button3 ersetzt denn Button3 ist als Start Knopf im Gui gedacht)

startet er nicht, nur wenn ich auf Stop(Button4) drücke.. aber nochmal kann ich ihn mit button4(Stop) nicht mehr starten , nur insgesamt zwei mal! ;(

 

@ ruespe

Ok, ich versuch das irgendwie umzusetzen! Mal schaun ob ichs hin bekomme! Danke für die hilfreiche Information das man ein schlafenden Sleep nicht jederzeit beenden kann!!



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Ja das ganze auch mal durchlesen wäre hilfreich.

Ich hätte Button4, als Start und Stop Knopf gedacht, dein Code zeigt dies auch an :

Stop:=!Stop ;wenn stop 1 ist wird eine 0 draus wenn stop null ist wird eine 1 drauss
;Dies zeigt an, dass dieser Schalter für zwei Zustände gedacht ist In diesem Fall Start und Stopp.

Deshalb habe ich auch Button 4 und 3 angepasst.

Button4:
    stop:=!stop 
    if !stop ;sorgt dafür , dass man über diesen Knops Starten und stoppen kann
    goto,exec ;Hat schon so seinen Sinn
    return 

 

Du musst alle Sleep und Mouseclick Funktionen durch die Funktionen SleepandWaitforstop  und  Mousecklickleftandstop  ersetzten: TEXT LESEN

Sleepandwaitforstop(1000) ;als beispel
Mousecklickleftandstop(126,138) ; so den ganzen Loop anpassen.


Sleepandwaitforstop(time)
{
global
Loop, % time//50
{
if stop
return
sleep, 50
}
}
 
Mousecklickleftandstop(x,y)
{
Global
if !stop
Mouseclick,left,% x,% y
}

 

Zudem anstatt = := verwenden

 

Ausserdem müsstes du dann Button3 so verändern.

exec:
Loop
{
If (stop = 1) ;in Klammern setzten ist die neuere Version.
Break
ToolTip, %A_Index%
Sleepandwaitforstop(1000) ;als beispel
Mousecklickleftandstop(126,138)
Sleep, 1
MouseClick, left, 539, 399
Sleep, 1
MouseClick, left, 594, 367
Sleep, 1
MouseClick, left, 656, 337
Sleep, 1
MouseClick, left, 712, 360
Sleep, 1
MouseClick, left, 769, 380
Sleep, 1
MouseClick, left, 808, 415
Sleep, 1
MouseClick, left, 710, 434
Sleep, 1
MouseClick, left, 630, 488
Sleep, 1
MouseClick, left, 677, 515
Sleep, 1
MouseClick, left, 735, 484
Sleep, 1
MouseClick, left, 775, 459
Sleep, 1
MouseClick, left, 848, 446
Sleep, 1
MouseClick, left, 898, 467
Sleep, 1
MouseClick, left, 882, 549
Sleep, 1
MouseClick, left, 1032, 622
Sleep, 1
MouseClick, left, 981, 644
Sleep, 1
MouseClick, left, 919, 734
Sleep, 1
MouseClick, left, 973, 749
Sleep, 1
MouseClick, left, 1150, 714
Sleep, 1
MouseClick, left, 1102, 740
Sleep, 1
MouseClick, left, 385, 135
Sleep, 3000
}
Return

Ein Skript muss so gemacht sein, dass selbst der dümmste der es benutzt keine Probleme damit bekommen kann.

Zweimal hintereinander auf Start gedrückt würde bei dir dazu führen, dass der Loop 2mal gestartet wird.>> Fehler.


Visit the new forum ahkscript.org.

http://ahkscript.org