3 kleine Fragen zu nem simplen script

04/21/2013 14:58 summsumm123#1
Hallo,

folgendes Script hab ich mir zusammengebastel:
PHP Code:
#include <GUIConstants.au3>
AutoItSetOption ("WinTitleMatchMode"2)


#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Klickerklacker",15050)
$Button1 GUICtrlCreateButton("Los"101050)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            _funktion1
()  
    EndSwitch
WEnd


Func _funktion1
() 
   
     
    
    
    
WinActivate ("- Paint")
    
WinWait ("- Paint")     
   ; 
Send("{LCTRL down}")
    
MouseClick("left",149,564,1,0)
    
MouseClick("left",154,485,1,0)
    
MouseClick("left",151,406,1,0)
    
MouseClick("left",244,408,1,0)
    
MouseClick("left",242,487,1,0)
    
MouseClick("left",237,567,1,0)
    ;
Send("{LCTRL up}")
    
 




EndFunc 
Nun hab ich dabei schon soweit optimiert wie ich es selbst recherchieren konnte.
Allerdings gibt es noch 2 Grundlegende Probleme:

1.
... ihr seht den deaktivierten STRG-Tastendruck?
Das Problem is, ich möchte die STRG-Taste gedrückt halten, dabei die Klickreihe ausführen, und danach strg nochmal lösen.

Wenn ich es allerdings so mache wie es im Script is, ist während der klicks die STRG-Taste nicht gedrückt, und danach "hängt" sie fest, bis ich nochmal irgend ne andere Aktion ausführe.

Also ich möchte dass die STRG-Taste während der klicks gedrückt is, und danach nochmal loslässt. (Muss aber auch nicht loslassen weil das script danach ja eh fertig is)


2.

Das ganze is noch zu langsam. Gibt es eine möglichkeit die klicks noch mehr zu beschleunigen? Oder gar alle zeitgleich auszuführen?
Ich habe den Eindruck, dass ich das ganze per Hand noch schneller kann, wenn auch nicht so präzise.
Der Übergang vom Knopfdrücken, bis zur aktivität der klicks im Browser kommt mir auch sehr lange vor. Gibts da noch was schnelleres aber trotzdem funktionelles als meine gewählte methode mit "winactivate" und "winwait"?


3.
Könnte mir jemand ein Codebeispiel posten, bei dem das ganze nicht über nen Button, sondern über einen beliebigen linksklick der Maus aktiviert wird?
Ich muss davor noch eine manuelle aktion machen, und bis ich dann mit der Maus den Button getroffen habe vergeht auch wieder sehr viel Zeit.
Also müsste das ganze schon bei der manuellen aktion losgehen.


Schonmal danke für eure Hilfe :)
Wenn was unklar ist, einfach nachfragen.
04/23/2013 13:51 inspi123#2
Probiers mal damit :) dann gibst du einfach ne zeit an! :)
Opt("SendKeyDownDelay", 1) ;1 millisecond


MouseClick("left",149,564,1,0) wenn du die letzte zahl wo in deinem fall 0 steht auf 1 bzw 2 setzt geht das ganze schon um einiges schneller ;)



du willst es über einen links klick aktivieren?
Weiß nicht so genau wie das funktioniert, aber mit nem hotkey is es simple :)
Einfach "autoit hotkey" googeln :)
04/23/2013 14:08 YatoDev#3
Code:
#include <misc.au3>

If _IsPressed("hex key") Then
code
EndIf
04/30/2013 11:59 summsumm123#4
Quote:
Originally Posted by »FlutterShy™ View Post
Code:
#include <misc.au3>

If _IsPressed("hex key") Then
code
EndIf
Quote:
Originally Posted by inspi123 View Post
Probiers mal damit :) dann gibst du einfach ne zeit an! :)
Opt("SendKeyDownDelay", 1) ;1 millisecond


MouseClick("left",149,564,1,0) wenn du die letzte zahl wo in deinem fall 0 steht auf 1 bzw 2 setzt geht das ganze schon um einiges schneller ;)



du willst es über einen links klick aktivieren?
Weiß nicht so genau wie das funktioniert, aber mit nem hotkey is es simple :)
Einfach "autoit hotkey" googeln :)

Danke euch beiden... werde das gleich mal versuchen.
@ Inspi123
Was ich nicht verstehe... wieso sollte 1 oder 2 schneller sein als 0??? 0 ist doch ohne geschwindigkeit, ohne delay, also SOFORT.


Worauf noch keiner von euch eingegangen ist, wäre das erste Problem, das mit der STRG-Taste. Das bekomme ich einfach nicht in den Griff. Ich muss die Taste manuell drücken... aber das sollte ja über das script mitgemacht werden.
04/30/2013 13:39 YatoDev#5
Code:
Send("{LCTRL Down}")
Dann bleibt die unten
04/30/2013 15:37 summsumm123#6
Quote:
Originally Posted by »FlutterShy™ View Post
Code:
Send("{LCTRL Down}")
Dann bleibt die unten

Hmm, also irgendwie will das alles nicht...

Folgendes hab ich im moment:

PHP Code:
#include <misc.au3>

AutoItSetOption ("WinTitleMatchMode"2)
Opt("SendKeyDownDelay"1


while 

if _Ispressed("53"Then
   _funktion1
()
    ;
msgbox(0,"uhh","It works fine")
EndIf
WEnd

Func _funktion1
() 
    
    
WinActivate ("Firefox")
    ;  
WinWait ("- Paint")     
    
  
Send("{LCTRL Down}"

MouseClick("left",87,653,1,1)
MouseClick("left",84,634,1,1)
MouseClick("left",85,612,1,1)
MouseClick("left",86,593,1,1)
MouseClick("left",86,561,1,1)
MouseClick("left",86,547,1,1)
MouseClick("left",84,523,1,1)
MouseClick("left",86,501,1,1)
MouseClick("left",120,474,1,1)
MouseClick("left",127,492,1,1)
MouseClick("left",126,517,1,1)
MouseClick("left",128,539,1,1)
MouseClick("left",129,566,1,1)
MouseClick("left",130,589,1,1)
MouseClick("left",130,610,1,1)
MouseClick("left",130,634,1,1)
MouseClick("left",132,659,1,1)
MouseClick("left",133,675,1,1)
MouseClick("left",176,656,1,1)
MouseClick("left",177,642,1,1)
MouseClick("left",178,610,1,1)
MouseClick("left",178,593,1,1)
MouseClick("left",178,566,1,1)
MouseClick("left",178,544,1,1)
MouseClick("left",178,519,1,1)
MouseClick("left",178,496,1,1)
Send("{CTRLUP}")
Exit
EndFunc 
Was die STRG-Taste angeht hab ich auch hier wieder das gleiche Problem... während der Klicks ist sie nicht aktiv, danach allerdings schon... also wenn ich dann im browser am Mausrad drehe oder ähnliches. Wenn ich sie dann manuell nochmal drücke is sie wieder deaktiviert.

Hat es irgendwas damit zu tun, dass ich in nem Flash am klicken bin? Eigentlich nicht oder? Die klicks funktionieren ja auch.

Edith hat noch was zu sagen:
Jetzt wo der Button weg is, und die function nur über den Hotkey gestartet wird, funktioniert es nichtmal wenn ich die STRG-Taste manuell drücke. Also irgendwie scheint durch den Button das Browserfenster richtig aktiviert zu werden, und ohne den Button nur im halb im Hintergrund oder wie... das verwirrt mich irgendwie doch.
Hab das übrigens nochmal mit dem Ursprungsscript gegengecheckt... dabei klappt es wenn ich die STRG-Taste manuell drücke.
05/05/2013 10:41 Achat#7
Quote:
Originally Posted by summsumm123 View Post
push
Das ist Spam und deshalb werden dir die Leute auch nicht schneller antworten.

Quote:
Originally Posted by summsumm123 View Post
Edith hat noch was zu sagen:
Jetzt wo der Button weg is, und die function nur über den Hotkey gestartet wird, funktioniert es nichtmal wenn ich die STRG-Taste manuell drücke. Also irgendwie scheint durch den Button das Browserfenster richtig aktiviert zu werden, und ohne den Button nur im halb im Hintergrund oder wie... das verwirrt mich irgendwie doch.
Hab das übrigens nochmal mit dem Ursprungsscript gegengecheckt... dabei klappt es wenn ich die STRG-Taste manuell drücke.
:confused: Drück dich mal deutlicher aus bitte.

btw
[Only registered and activated users can see links. Click Here To Register...]

MfG
05/05/2013 11:43 Rorc#8
Kein Wunder ist das Ctrl nachher immer noch gedrückt, wenn du
Code:
;Send("{CTRLUP}")
Auskommentierst.
Zudem ist das eh nicht richtig, es müsste
Code:
Send("{LCTRL UP}")
Heissen :)
05/05/2013 20:03 summsumm123#9
Quote:
Originally Posted by Achat View Post
Das ist Spam und deshalb werden dir die Leute auch nicht schneller antworten.
Nach 6 Tagen nen Thread von der 2ten Seite nochmal auf die erste zu holen ist Spam? :rolleyes:
Aber geholfen hat es ja offenbar :D


Quote:
Originally Posted by Achat View Post
:confused: Drück dich mal deutlicher aus bitte.
Also wenn ich das Script in meinem Anfangspost benutze, und dabei die STRG-Taste selbst auf der Tastatur drücke, funktioniert es.
Also ich drück den OK Knopf im Script und halte dabei schon die STRG-Taste, bis die klicks fertig sind.

Mit dem umgeschriebenen Script, dass ich es per Hotkey starte, funktioniert selbst das manuelle Drücken der STRG-Taste nicht. Also ich halte sie gedrückt, und drücke dann den hotkey. Dabei ist bei den Klicks die Taste nicht gedrückt.

Hoffe es ist verständlicher so. Wenn noch unklar is, einfach fragen ;)

Quote:
Originally Posted by Rorc View Post
Kein Wunder ist das Ctrl nachher immer noch gedrückt, wenn du
Code:
;Send("{CTRLUP}")
Auskommentierst.
Zudem ist das eh nicht richtig, es müsste
Code:
Send("{LCTRL UP}")
Heissen :)

Das hab ich schon alles durch... egal ob ichs nochmal schließe oder linke taste nehme, oder ctrl allgemein, oder ob leerzeichen dazwischen is oder nicht... hat alles exakt den selben effekt.

-> nämlich, dass die Taste während den klicks NICHT aktiv is... und danach, wenn das script fertig is (auch wenn ich nochmal mit Send("{LCTRL UP}") schließe) doch aktiv is, solange bis ich sie selbst nochmal drücke.

Wie gesagt... ich klicke in nem Flash rum... ich schätze mal, dass es damit zusammenhängt, wobei es sich mir nicht erklärt wieso.
05/06/2013 18:52 wertron#10
ich frage mich grade warum du die strg taste ueberhaupt druecken willst?

haste schon mal
Code:
MouseClickDrag
ausprobiert ?
05/06/2013 20:37 summsumm123#11
Quote:
Originally Posted by wertron View Post
ich frage mich grade warum du die strg taste ueberhaupt druecken willst?

haste schon mal
Code:
MouseClickDrag
ausprobiert ?
Ich will ja nix verschieben. Durch drücken der STRG-Taste wird in dem Flash die letzte Aktion wiederholt.
Also ich mache eine aktion manuell, und das script soll diese Aktion eben an den anderen Koordinaten wiederholen. Und das geht eben nur mit der STRG-Taste.
05/07/2013 21:01 wertron#12
bist du denn sicher das deine vorgehensweise richtig ist ?
fals ich dich richtig verstanden habe drueckst du strg (links oder rechts?) und dann springt die maus an einen anderen ort und dann ? dann wieder strg druecken oder wie geht es genau?
05/08/2013 21:15 summsumm123#13
Quote:
Originally Posted by wertron View Post
bist du denn sicher das deine vorgehensweise richtig ist ?
fals ich dich richtig verstanden habe drueckst du strg (links oder rechts?) und dann springt die maus an einen anderen ort und dann ? dann wieder strg druecken oder wie geht es genau?
Nein... ich halte die STRG-Taste (egal welche Seite) gedrückt, während ich einen klick nach dem anderen mache.
Die Strg-Taste wird erst wieder losgelassen nachdem alle klicks ausgeführt sind.