|
You last visited: Today at 01:43
Advertisement
Gui Button Funktionen Zuweisen
Discussion on Gui Button Funktionen Zuweisen within the AutoIt forum part of the Coders Den category.
11/04/2011, 16:39
|
#1
|
elite*gold: 0
Join Date: Feb 2010
Posts: 615
Received Thanks: 61
|
Gui Button Funktionen Zuweisen
Hallo
ich bin gerade dabei eine Gui für meine Autoclicker zu erstellen und brauche hilfe
Code:
HotKeySet ("{F6}","Start")
HotKeySet ("{F7}","Pause")
HotKeySet ("{F8}","Ende")
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Gui = GUICreate("AutoClicker Made By Chakratos", 468, 377, 217, 125)
$AutoClicker = GUICtrlCreateLabel("AutoClicker", 168, 32, 168, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
$input = GUICtrlCreateInput("Wie oft soll geklickt werden", 176, 144, 145, 21)
$start = GUICtrlCreateButton("Start (F6)", 24, 224, 113, 49, 0)
$blub = GUICtrlCreateButton("Pause (F7)", 184, 224, 113, 49, 0)
$stop = GUICtrlCreateButton("Beenden (F8)", 344, 224, 113, 49, 0)
$Madeby = GUICtrlCreateLabel("Made By Chakratos", 192, 352, 103, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Opt("GuiOnEventMode",1)
While 1
GUICtrlSetOnEvent($start, "Start")
GUICtrlSetOnEvent($blub, "Pause")
GUICtrlSetOnEvent($stop, "Ende")
WEnd
so sieht bei mir die GUI aus und so habe ich bis jetzt die funktionen für die buttons gemacht
nur ist das problem wenn ich einmal einen Button Drücke funktionieren die anderen buttons nicht mehr z.b
ich drücke auf start er startet aber man kann nicht auf pause bzw Beenden Drücken bzw passiert einfach nichts
Das gleiche bei den anderen buttons
Ich hoffe ihr könnt mir helfen
LG Chakratos
|
|
|
11/04/2011, 17:01
|
#2
|
elite*gold: 556
Join Date: Aug 2006
Posts: 502
Received Thanks: 404
|
1. wieso haste dein post geändert? den grund sieht man jetzt jetzt net mehr
2. du hast zu viele schleifen, mach diese weg und arbeite mehr mit ifsätzen,
versuch nur eine schleife
hier bitte
Code:
HotKeySet ("{F6}","Start")
HotKeySet ("{F7}","Pause")
HotKeySet ("{F8}","Ende")
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Gui = GUICreate("AutoClicker Made By Chakratos", 468, 377, 217, 125)
$AutoClicker = GUICtrlCreateLabel("AutoClicker", 168, 32, 168, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
$input = GUICtrlCreateInput("Wie oft soll geklickt werden", 176, 144, 145, 21)
$start = GUICtrlCreateButton("Start (F6)", 24, 224, 113, 49, 0)
$blub = GUICtrlCreateButton("Pause (F7)", 184, 224, 113, 49, 0)
$stop = GUICtrlCreateButton("Beenden (F8)", 344, 224, 113, 49, 0)
$Madeby = GUICtrlCreateLabel("Made By Chakratos", 192, 352, 103, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Opt("GuiOnEventMode",1)
Local $action = 0
While Sleep(10)
GUICtrlSetOnEvent($start, "Start")
GUICtrlSetOnEvent($blub, "Pause")
GUICtrlSetOnEvent($stop, "Ende")
If $action == 0 Then
Sleep(1000)
elseif $action == 1 Then
MouseClick("left")
EndIf
WEnd
Func Ende ()
Exit
EndFunc
Func Start ()
$action = 1
EndFunc
Func Pause ()
$action = 0
EndFunc
|
|
|
11/04/2011, 17:22
|
#3
|
elite*gold: 0
Join Date: Feb 2010
Posts: 615
Received Thanks: 61
|
ehm Wow So weit bin ich noch nicht ich kenne die sachen die du gemacht hast noch nicht
Code hat sich geändert hier der neue
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Gui = GUICreate("AutoClicker Made By Chakratos", 468, 377, 217, 125)
$AutoClicker = GUICtrlCreateLabel("AutoClicker", 168, 32, 168, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
$input = GUICtrlCreateInput("Wie oft soll geklickt werden", 176, 144, 145, 21)
$start = GUICtrlCreateButton("Start (F6)", 24, 224, 113, 49, 0)
$blub = GUICtrlCreateButton("Pause (F7)", 184, 224, 113, 49, 0)
$stop = GUICtrlCreateButton("Beenden (F8)", 344, 224, 113, 49, 0)
$Madeby = GUICtrlCreateLabel("Made By Chakratos", 192, 352, 103, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
HotKeySet ("{F6}","Start")
HotKeySet ("{F7}","Pause")
HotKeySet ("{F8}","Ende")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $start
Start ()
Case $blub
Pause ()
Case $stop
Ende ()
EndSwitch
WEnd
While 1
Sleep(250)
WEnd
Func Ende ()
While 1
Exit
WEnd
EndFunc
Func Start ()
While 1
MouseClick("left")
WEnd
EndFunc
Func Pause ()
While 1
Sleep(250)
WEnd
EndFunc
Nur Leider Funktioniert es auf diesem wege mit Case auch nicht...
|
|
|
11/04/2011, 17:33
|
#4
|
elite*gold: 556
Join Date: Aug 2006
Posts: 502
Received Thanks: 404
|
Quote:
Originally Posted by .Chakratos
ehm Wow So weit bin ich noch nicht ich kenne die sachen die du gemacht hast noch nicht
Code hat sich geändert hier der neue
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Gui = GUICreate("AutoClicker Made By Chakratos", 468, 377, 217, 125)
$AutoClicker = GUICtrlCreateLabel("AutoClicker", 168, 32, 168, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
$input = GUICtrlCreateInput("Wie oft soll geklickt werden", 176, 144, 145, 21)
$start = GUICtrlCreateButton("Start (F6)", 24, 224, 113, 49, 0)
$blub = GUICtrlCreateButton("Pause (F7)", 184, 224, 113, 49, 0)
$stop = GUICtrlCreateButton("Beenden (F8)", 344, 224, 113, 49, 0)
$Madeby = GUICtrlCreateLabel("Made By Chakratos", 192, 352, 103, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
HotKeySet ("{F6}","Start")
HotKeySet ("{F7}","Pause")
HotKeySet ("{F8}","Ende")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $start
Start ()
Case $blub
Pause ()
Case $stop
Ende ()
EndSwitch
WEnd
While 1
Sleep(250)
WEnd
Func Ende ()
While 1
Exit
WEnd
EndFunc
Func Start ()
While 1
MouseClick("left")
WEnd
EndFunc
Func Pause ()
While 1
Sleep(250)
WEnd
EndFunc
Nur Leider Funktioniert es auf diesem wege mit Case auch nicht...
|
so, ich erklär dir jetzt farblich, wieso es bei dir net geht
rot = falsch
orange = braucht man zwar, aber nicht durch gui button abzubrechen, nur per hotkey
gelb = unnötig wird von grün schon übernühmen
falsch, WEIL dein script immer in der while schleife bleibt und nicht von dort abhauen kann
deswegen, schau mein script an
|
|
|
11/04/2011, 19:39
|
#5
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by uragan
Code:
[...]
While Sleep(10)
GUICtrlSetOnEvent($start, "Start")
GUICtrlSetOnEvent($blub, "Pause")
GUICtrlSetOnEvent($stop, "Ende")
[...]
WEnd
[...]
|
events niemals in einer schleife deklarieren.
wenn du einer person sagst, "gib mir 10 euro", machst du das auch nur einmal und nicht unendlich oft...
|
|
|
11/04/2011, 19:49
|
#6
|
elite*gold: 0
Join Date: Feb 2010
Posts: 615
Received Thanks: 61
|
nein eigentlich nicht nur wenn ich z.b start ohne schleife mache klickt er nur 1x und nicht unendlich oft
wenn wir pause nicht in einer schleife machen wird nur für 25ms Pausiert und nicht für immer bis wir wieder starten
ok du hast recht bei Ende ist es unnötig xD
|
|
|
11/04/2011, 20:17
|
#7
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
du solltest dir gleich angewöhnen mit zuständen zu arbeiten.
erstelle dir eine variable, welche true oder false sein kann. das hat den vorteil, das dein script dadurch ebenfalls schlauer ist, und selbst weis, ob eine aktion gerade ausgeführt wird oder nicht.
danach solltest du dir mal überlegen, was eine endlos-schleife macht.
Code:
$blubb = 1
While 1
; irgend eine aktion
WEnd
$blubb = 2
was genau passiert hier?
die variable blubb wird auf 1 gesetzt... danach wird irgend eine aktion ausgeführt... danach wird irgend eine aktion ausgeführt... danach wird irgend eine aktion ausgeführt... ....
was bedeutet das für uns? blubb kann niemals 2 werden.
was passiert in deinem script nun?
Code:
While 1
$nMsg = GUIGetMsg()
[...]
WEnd
du erstellst eine endlos schleife, welche immer wieder die GUIGetMsg() funktion aufruft.
GUIGetMsg() ist eine funktion, welche prüft ob gerade ein event von deinem gui ausgerufen wird (zb ob ein button gedrückt wird).
warum hast du das nun in einer endlos-schleife? weil du ständig gucken musst, ob irgend etwas passiert.
angenommen jemand drückt nun einen deiner buttons. was passiert dann?
angenommen jemand drückt den start button. GUIGetMsg() hat nun als returnwert das handle des startbuttons. das handle des stzartbuttons hast du beim erstellen des buttons in $start gespeichert:
Code:
$start = GUICtrlCreateButton("Start (F6)", 24, 224, 113, 49, 0)
nun vergleicht dein switch befehl den returnwert von GUIGetMsg() (hier $start) mit den jeweiligen case fällen, und stellt fest, das es mit dem inhalt von der variable $start übereinstimmt.
somit wird die aktion unter dem case fall ausgeführt.
hierbei handelt es sich um einen funktionsaufruf. die funktion Start() wird ausgeführt.
in ihr befindet sich eine endlosschleife:
Code:
While 1
MouseClick("left")
WEnd
dieser code wird nun ausgeführt.
dh dein script macht jetzt folgendes:
MouseClick("left") -> MouseClick("left") -> MouseClick("left") -> MouseClick("left") -> ....
und nichts anderes!
das bedeutet es wird nicht mehr geprüft, ob einer deiner buttons genutzt wird, da die funktion GUIGetMsg() nichtmehr angewendet wird.
selbiges gilt für den pause button.
um das zu umgehen, musst du stets mit deiner einen endlosschleife arbeiten.
dies gelingt dir ebenfalls mit den anfangs erwähnten zuständen...
damit du dir das ganze etwas besser vorstellen kannst, hier dein code mal überarbeitet:
Code:
HotKeySet("{F6}", "Start")
HotKeySet("{F7}", "Pause")
HotKeySet("{F8}", "Ende")
Dim $klicker_active = False
GUICreate("AutoClicker Made By Chakratos", 468, 377, 217, 125)
GUICtrlCreateLabel("AutoClicker", 168, 32, 168, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
$input = GUICtrlCreateInput("Wie oft soll geklickt werden", 176, 144, 145, 21)
$start = GUICtrlCreateButton("Start (F6)", 24, 224, 113, 49, 0)
$blub = GUICtrlCreateButton("Pause (F7)", 184, 224, 113, 49, 0)
$stop = GUICtrlCreateButton("Beenden (F8)", 344, 224, 113, 49, 0)
GUICtrlCreateLabel("Made By Chakratos", 192, 352, 103, 17)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $start
$klicker_active = True
Case $blub
$klicker_active = False
Case $stop
Exit
EndSwitch
If $klicker_active Then MouseClick("left")
WEnd
Func Ende()
Exit
EndFunc
Func Start()
$klicker_active = True
EndFunc
Func Pause()
$klicker_active = False
EndFunc
|
|
|
11/04/2011, 20:31
|
#8
|
elite*gold: 556
Join Date: Aug 2006
Posts: 502
Received Thanks: 404
|
Quote:
Originally Posted by lolkop
du solltest dir gleich angewöhnen mit zuständen zu arbeiten.
...
Code:
HotKeySet("{F6}", "Start")
HotKeySet("{F7}", "Pause")
HotKeySet("{F8}", "Ende")
Dim $klicker_active = False
GUICreate("AutoClicker Made By Chakratos", 468, 377, 217, 125)
GUICtrlCreateLabel("AutoClicker", 168, 32, 168, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
$input = GUICtrlCreateInput("Wie oft soll geklickt werden", 176, 144, 145, 21)
$start = GUICtrlCreateButton("Start (F6)", 24, 224, 113, 49, 0)
$blub = GUICtrlCreateButton("Pause (F7)", 184, 224, 113, 49, 0)
$stop = GUICtrlCreateButton("Beenden (F8)", 344, 224, 113, 49, 0)
GUICtrlCreateLabel("Made By Chakratos", 192, 352, 103, 17)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $start
$klicker_active = True
Case $blub
$klicker_active = False
Case $stop
Exit
EndSwitch
If $klicker_active Then MouseClick("left")
WEnd
Func Ende()
Exit
EndFunc
Func Start()
$klicker_active = True
EndFunc
Func Pause()
$klicker_active = False
EndFunc
|
guckst du , post NR 2, kommt das gleich raus
|
|
|
11/04/2011, 20:38
|
#9
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by uragan
guckst du , post NR 2, kommt das gleich raus 
|
leider ist das ein trugschluss...
wie bereits erwähnt bombardierst du das script, mit dem script bereits bekannten anweisungen.
davon abgesehen deklarierst du im globalden bereich eine variable als lokal.
und auch wenn du immerhin schon mit zuständen gearbeitet hast, hast du diesen vorteil durch das sleep von einer sekunde wieder unbrauchbar gemacht :s
bitte nicht beleidigt auf diese posts reagieren...
mir ging es hier nur darum mit konstruktiver kritik auf fehler aufmerksam zu machen =)
|
|
|
11/04/2011, 21:45
|
#10
|
elite*gold: 556
Join Date: Aug 2006
Posts: 502
Received Thanks: 404
|
naja, um erlich zu sein, habe ich es mit GUICtrlSetOnEvent noch nie gebraucht, deswege hatte ich das vorerst drin gelassen
den man kann das ganze auch per Switch Case klären, so mache ich das immer, bis jetzt keine probleme
|
|
|
 |
Similar Threads
|
[AUTOIT]Buttons Funktionen Zuweisen ?
08/04/2011 - AutoIt - 6 Replies
Ja brauch ma ne hilfe will ma den buttons Zuweisen das sie ihre ahl klicken zb bei dem
$Button1 = GUICtrlCreateButton("1", 40, 288, 49, 49, 0)
wenn man den anklicken sollte sollte auf nen label oder so eine eins angezeigt werden ;D aber auf inem anderen fenster
; Prompt the user to run the script - use a Yes/No prompt (4 - see help file)
$answer = MsgBox(4, "Autoit", "Dieses Anfänger Script starten?Ach ja in der Version FUnktioniert der Nein Button Nich :D")
|
button funktion zuweisen?
10/10/2010 - General Coding - 2 Replies
hi epvpers...
da ich eine niete in html bin wollte ich mal fragen wie ich ein button dazu krige das wenn man ihn anklickt das er eine neue seite öffnet wo die url wie folgt ausieht
www .blablabla.de/sdfsdfinput1sdgsdaginput2asd
ps auf der seiten gibts 2 inputs
|
Hotkey Button zuweisen?
02/25/2010 - AutoIt - 18 Replies
Hallo,
erster post in dieser section.
In letzter zeit hab ich mich mit dem Thema AutoIT befasst, hab auch schon paar programme erstellt, aber jetzt habe ich ein Problem!
Wie kann ich z.B Hotkey: F8 einem Button, von Koda-Designer, zuweisen?
Also dass wenn ich inGame bin nur F8 drücken muss das der Button gedrückt wird!!
Mfg!!!
|
NEED HELP:button funktionen zuweisen:NEED HELP
08/23/2009 - AutoIt - 4 Replies
hallo an alle,
dies ist ein bot den ich gescribtet habe und ich brauche hilfe den einzelnen buttons funktionen zuzuweisen:
in das inputfeld soll man die zeit in milisekunden eingeben die dann hinter dem befehl if int ($dif) eingefügt (hier steht z.b 18000000) werden soll
wenn ich den button on drücke soll func Start() ausgeführt werden
und wenn ich den button off drücke soll func pause() ausgeführt werden
|
All times are GMT +1. The time now is 01:45.
|
|