Mit GUI Bot AN/AUS schalten

06/22/2009 22:35 S.I.D Tier#1
Hallo, ich hab folgendes Proplem:
Ich möchte gerne für ein Metin ein Aufhebbot schreiben. Hab versucht mit Hilfe von einem GUI das Senden der Taste "y" AN/AUS bzw auf Pause zu schalten, damit man noch ganz normal chatten kann. Ist wohl schiefgegangen. Er schaltet es nicht an und aus. Bitte um Hilfe.

PHP Code:
#include <GUIConstantsEx.au3>

GUICreate("AufhebBot"400100)
GUICtrlCreateLabel("Wilkommen im Aufhebbot"3010)
$AnButton GUICtrlCreateButton("AN"705060)
$PauseButton GUICtrlCreateButton"PAUSE"1405060)

GUISetState(@SW_SHOW) ;ganz normales GUI erstellt

While 1
  $msg 
GUIGetMsg() ;stetiges Abfragen von Ereignissen
    
    Select
        
case  $msg $ANbutton ;Das hier soll passieren wenn "AN" gedrückt wurde
            
Do
                
send("y")
            
Until $msg $PAUSEbutton ;solange bis "PAUSE" gedrückt wurde
        
        
case $msg $PAUSEbutton ;wenn "PAUSE" gedrückt wurde soll gewartet werden
        
Do
            
sleep(100)
        
Until $msg $ANbutton ;bis "AN" gedrückt wurdedann sollte er eig wieder 
        
;dem ersten case dingen anfangen... 
        
        
ExitLoop
    EndSelect
        
  
WEnd 
06/23/2009 16:05 SCORNI#2
ich würd mal sagen das liegt da dran das du es viel zu kompliziert gemacht hast. finde eine einfachare methode herraus.wenn du nicht findest werde ich dir helfen.
06/23/2009 23:16 Shadow992#3
Quote:
Originally Posted by S.I.D Tier View Post
Hallo, ich hab folgendes Proplem:
Ich möchte gerne für ein Metin ein Aufhebbot schreiben. Hab versucht mit Hilfe von einem GUI das Senden der Taste "y" AN/AUS bzw auf Pause zu schalten, damit man noch ganz normal chatten kann. Ist wohl schiefgegangen. Er schaltet es nicht an und aus. Bitte um Hilfe.

PHP Code:
#include <GUIConstantsEx.au3>

GUICreate("AufhebBot"400100)
GUICtrlCreateLabel("Wilkommen im Aufhebbot"3010)
$AnButton GUICtrlCreateButton("AN"705060)
$PauseButton GUICtrlCreateButton"PAUSE"1405060)

GUISetState(@SW_SHOW) ;ganz normales GUI erstellt

While 1
  $msg 
GUIGetMsg() ;stetiges Abfragen von Ereignissen
    
    Select
        
case  $msg $ANbutton ;Das hier soll passieren wenn "AN" gedrückt wurde
            
Do
                
send("y")
            
Until $msg $PAUSEbutton ;solange bis "PAUSE" gedrückt wurde
        
        
case $msg $PAUSEbutton ;wenn "PAUSE" gedrückt wurde soll gewartet werden
        
Do
            
sleep(100)
        
Until $msg $ANbutton ;bis "AN" gedrückt wurdedann sollte er eig wieder 
        
;dem ersten case dingen anfangen... 
        
        
ExitLoop
    EndSelect
        
  
WEnd 
mach es über OnEvent , da reagieren dann auch die buttons , sozusagen ein kleines parallel laufen oder du machst es über SetHotKey
06/23/2009 23:51 Frezee#4
Quote:
Originally Posted by S.I.D Tier View Post
PHP Code:
#include <GUIConstantsEx.au3>

GUICreate("AufhebBot"400100)
GUICtrlCreateLabel("Wilkommen im Aufhebbot"3010)
$AnButton GUICtrlCreateButton("AN"705060)
$PauseButton GUICtrlCreateButton"PAUSE"1405060)

GUISetState(@SW_SHOW) ;ganz normales GUI erstellt

While 1
  $msg 
GUIGetMsg() ;stetiges Abfragen von Ereignissen
    
    Select
        
case  $msg $ANbutton ;Das hier soll passieren wenn "AN" gedrückt wurde
            
Do
                
send("y")
            
Until $msg $PAUSEbutton ;solange bis "PAUSE" gedrückt wurde
        
        
case $msg $PAUSEbutton ;wenn "PAUSE" gedrückt wurde soll gewartet werden
        
Do
            
sleep(100)
        
Until $msg $ANbutton ;bis "AN" gedrückt wurdedann sollte er eig wieder 
        
;dem ersten case dingen anfangen... 
        
        
ExitLoop ; <-- was bewirkt das????
    
EndSelect
        
  
WEnd 
Ich hab die Frage oben rein gemacht: was willst du mit dem ExitLoop denn erreichen?
06/24/2009 18:01 S.I.D Tier#5
erstmal danke für die antworten.

Mit hotkeyset hab ich es schon probiert, lief 1a, aber ich wollte es halt auch mal über ein GUI versuchen ;)

Quote:
Ich hab die Frage oben rein gemacht: was willst du mit dem ExitLoop denn erreichen?
hab mir sowas in der Hilfe angeguckt und da steht am ende von der Select schleifen ( ich hoffe es ist ein ) auch dieses "Exitloop" und weil es ja der messageloop modus ist hab ich gedacht, dass ich das da mal rein haue :D


Ich werde es heute abend mal mit dem OnEvent machen und dann schau ich weiter ;)
06/24/2009 19:19 S.I.D Tier#6
Das hab ich jetzt zustande gebracht:

PHP Code:
#include <GUIConstantsEx.au3>


    
Local $aufhebbot$AN$PAUSE
    
    Opt
("GUiOnEventMode"1)                         ; On event modus an

    
    $aufhebbot 
GUICreate("Aufhebbot"200,200)     ;GUI erstellt
    GUISetOnEvent
$GUI_EVENT_CLOSE"Ende")         ;Close-Event

    
    $AN 
GUICtrlCreatebutton("AN"10,30,50)        ;AN Button erstellt
    GUICtrlSetOnEvent
($AN"An")                    ;AN Button eine Funktion zugewiesen
    
    $PAUSE 
GUICtrlCreateButton("PAUSE",10,60,50)    ;PAUSE Button erstellt
    GUICtrlSetOnEvent
($PAUSE"Pause")                ;PAUSE Button eine Funktion zugewiesen
    
    Guisetstate
(@SW_SHOW)                            ;GUI sichtbar gemacht

    
    
While 1    
        Sleep
(10)
    
WEnd



Func An
()                                            ;Das soll passieren wenn AN gedrückt wurde
    
While 1    
        send
("y")                                    ;stetiges senden von "y"
    
Wend
EndFunc    

Func Pause
()                                        ;Das soll passieren wenn PAUSE gedrückt wurde
    
While 1
        sleep
(1000)                                    ;Warten
        Wend
    EndFunc
    
    Func Ende
()                                        ;Das soll passieren wenn x gedrückt wurde
        
Exit 1
    Endfunc 
Ich glaube das Proplem liegt in meine While schleife in den eweiligen Funktionen. Die werden nicht mehr Beendet bzw. ich kann keine neue Aufrufen.
Ich brauch i-wie eine bedingung die nicht mehr erfüllt ist sobald ein andere knopf gedrückt wurde.
06/28/2009 00:35 rayray88#7
HuHu =)

Benutze mal lieber diese Funktion als an und aus:
AdlibEnable
AdlibDisable

Und das mit der Buttons -.-...ich würde das an deiner stelle lieber mit radio machen und dann abfragen obs an und aus ist mit if bitand etc =)
dann per hotkeyset starten oder pausieren...hat viiieeell mehr bequemlichkeit und handhabung ;)
06/28/2009 01:00 rayray88#8
So ich hab ihn Dir einfach schnell geschrieben =)
Kannste also getrost so übernehmen..falls fehler drin sind die ich aber nicht glaube sag bescheid und ich ändere es Dir.
Kannst und solltest es an deine bedürfnisse anpassen, aber ich habs einfach mal so gemacht das eine msgbox auftaucht damit du bescheid weisst, denn das ist meines erachtens besser!
SRY aber ich kenn mich nicht mit foren aus und weiss nicht wie ich es in code setzen kann, vergebt mir ^^

hier der code:

#include <GUIConstantsEx.au3>

#Region ### START Koda GUI section ### Form=
$aufhebbot = GUICreate("Aufhebbot", 135, 78, 193, 115)
GUISetBkColor(0x800000)
$AN = GUICtrlCreateRadio("AN", 8, 16, 113, 17)
$AUS = GUICtrlCreateRadio("AUS", 8, 48, 113, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; GOGOGOGOGOGO
; Selber entscheiden welche taste es sein soll^^
HotKeySet ("{insert}","_AN")
HotKeySet ("{del}","_AUS")
HotKeySet ("{esc}","_Exit")


Func _AN()
Sleep(50)
If BitAND(GUICtrlRead($AN),$GUI_CHECKED) = $GUI_CHECKED Then
AdlibEnable("_y", 150)
Else

If BitAND(GUICtrlRead($AUS),$GUI_CHECKED) = $GUI_CHECKED Then
MsgBox(16,"Achtung", "Nicht Aktiviert")
AdlibDisable()
EndIf
EndIf
EndFunc

Func _y()
send("y")
EndFunc

Func _AUS()
Sleep (50)
AdlibDisable()
MsgBox(48,"Achtung", "Pause!")
EndFunc

Func _Exit()
AdlibDisable()
Exit
EndFunc

While 1
Sleep(10)
WEnd
06/28/2009 15:55 S.I.D Tier#9
perfekt :) vielen danke

werde den code nochein paar mal durchgehen und einzelne sachen googlen, damit ich es auch genau verstehe, aber meine frage ist beatwortet :)


-closed-
06/30/2009 02:34 marcopolo1990#10
Blubb

alles ist möglich, Volkswagen ?
06/30/2009 19:17 S.I.D Tier#11
mhh... tut mir leid marco, aber der bot funtkioniert nicht^^

die "Ende" funktion funzt nicht und man kann dieses nicht von der "an" funktion in die "pause" funtktion wechseln.
06/30/2009 22:54 marcopolo1990#12
tippfehler omg ^^

Func Ende()
Ende()
Endfunc

muss so heißen

Func Ende()
Exit
Endfunc
07/01/2009 12:17 S.I.D Tier#13
ok das auch, funtz aber immer noch nicht :-/,

aber was ich meinte is das wenn man einmal auf " AN " geklickt hat, dass dann wenn man auf "AUS" klickt nix passiert. Man kommt also von der "AN" funktion nicht in die "AUS" funktion.