leute... nur weil da bot steht antwortet mir niemand? ![]()
das ist kein game bot oder sonst was, ich habe auch nicht vor das zu benutzen.. ich möchte doch nur das meine GUI funktioniert, weil ich den umgamg mit GUIs lernen will, dazu möchte ich eben diesen afk bot machen, damit wenn ich afk gehe.. und anschrieben werde.. der bot dann sowas schreibt wie "ich bin gerade eine Rauchen, bin in 10 minuten wieder da" und dazu möchte ich machen das die 10 minuten automatisch runterzählen... aber das bekomme ich hin...
das problem ist nur, das in der Gui wie schon gesagt der button2 nicht geht, wenn der button1 gedrückt wurde -.-
was kann ich machen, oder was ist falsch, kann ich das vllt komplett anders struckturieren mit den funktionen der buttons? vllt besser?
hilft mir doch, ich will garnichts böses, wenn ich das wollte würde ich in einem anderen forum fragen.
HELP GUI Funktionen zuweisen...2. button=abbrechen verliert nach 1. button=Start funktion
-
- [ offen ]
-
Executor87 -
28. Mai 2009 um 16:15 -
Geschlossen -
Erledigt
-
-
[autoit]
[/autoit]
While 1
Dim $pixl=PixelSearch ( 25, 260, 133, 301, 0xDD5404, 10,0)
If not @error Then
sleep (1000)
MouseClick("left",30,355) ; auf das eingabefeld wo ich was geschrieben haben möchte
Sleep (1000)
send(GuiCtrlRead ($input1)) ; $input ist meine inputbox..
sleep (100)
Send ("{ENTER}") ; Abschicken
EndIf
WEnd
Weil diese Schleife nicht mehr verlassen wird.
-
oh gott xD
was denn genau hab ich vergessen? Exitloop?was denn sag bitte^^
-
Bin mir nicht sicher ob ich den Sinn verstehe: Die Schleife soll durchlaufen bis der "Stop" Button gedrückt wurde?
-
genau richtig!
das script soll solange checken ob die farbe auf den coords zu finden ist.. und wenn sie es ist den text schreiben, bis ich wieder da bin und in meinem gui auf exit drücke, ich könnte es ja mit hotkeys machen, aber dann hab ich keine funktionierende GUI^^ das ist ja das was ich will, das script ist nur zum nebeneffekt
-
Ich glaube das geht nur über GUIRegisterMsg()
Versuchs mal das hier einzubauen (s. Kommentar im Skript):
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <WindowsConstants.au3>
;<WindowsConstants.au3> wird für _ClickonButton() gebrauchtGUIRegisterMsg($WM_NOTIFY, "_ClickonButton") ;vor die Schleife der Gui setzen
[/autoit][autoit][/autoit][autoit];
[/autoit][autoit][/autoit][autoit]
;Func _ClickonButton($hWnd, $Msg, $wParam, $lParam)
[/autoit]
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
If $wParam = $btnHid2 and $event = $NM_CLICK Then ;$btnHid2 = dein Exit button?
Ende() ;deine Exit Funktion?f
EndIf
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFuncAnsonsten mal bitte das ganze Skript posten damit man rumprobieren kann.
-
probier ich sofort, muss aber jetzt zum haare schneiden...
werd mich dann drann setzen, und probieren.
-
achja.. klappt so nicht.. weil ich durch den aufbau der GUI $POPUP und so konnte ich keine funktionierenden buttons machen.. deshalb habe ich transparente labels gemacht, auf die ich klicke und als buttons genommen werden musste, die buttons dann auf ein bild malen, das klappt auch mit den labels..eben nach dem starten des ersten buttons will der andere nicht mehr abbrechen bzw stopen
-
Und dein Skript dazu?
-
hier^^ :
[autoit]#include <GUIConstants.au3>
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]$Form1 = GUICreate("ICQ Away Tool", 451, 346, 238, 121,0x80000000)
[/autoit][autoit][/autoit][autoit]
GUISetFont(8, 400, 0, "Comic Sans MS")
GUISetBkColor(0xFFFFFF)
$Pic1 = GUICtrlCreatePic("icqneww.jpg",0,0, 451, 346, -1,$GUI_WS_EX_PARENTDRAG)
$Label1 = GUICtrlCreateLabel("Wichtig! ICQ Fenster muss Links oben in der Ecke platziert sein.", 24, 96, 335, 19)
GUICtrlSetBkColor(-1, 0xF2FEEC)
$Input1 = GUICtrlCreateInput("Hier Nachricht eingeben", 32, 120, 281, 23)
GUICtrlSetBkColor(-1, 0xF2FEEC)
GUICtrlSetCursor (-1, 5)
$btnHid1 = GUICtrlCreateLabel('', 32, 168, 71, 34)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT )
GUICtrlSetState(-1, $GUI_ONTOP)
$btnHid2 = GUICtrlCreateLabel('', 120, 165, 71, 34)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT )
GUICtrlSetState(-1, $GUI_ONTOP)GUISetState()
[/autoit][autoit][/autoit][autoit]While 1
[/autoit][autoit][/autoit][autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btnHid1
Start ()
Case $btnHid2
Ende ()
Endswitch
WEnd
Func Start ()
If TrayTip ("","Bot gestartet",3000) Then
Sleep (1000)
If WinWait("FENSTERNAME") Then
Sleep (500)
IF WinActivate ( "FENSTERNAME") Then
Sleep (1300)
WinMove("FENSTERNAME", "", 0, 0)
Sleep (3000)
EndIf
EndIf
EndIf
While 1
Dim $pixl=PixelSearch ( 25, 260, 133, 301, 0xDD5404, 10,0)
If not @error Then
sleep (1000)
MouseClick("left",30,355)
Sleep (1000)
send(GuiCtrlRead ($input1))
sleep (100)
Send ("{ENTER}")
EndIf
WEnd
EndFuncFunc Ende ()
[/autoit]
Exit
EndFunc -
Ok hast recht, die Funktion oben geht echt nicht. Ist für ein Listview, keine Ahnung was da schief läuft (und was lernen wir daraus? nicht in Funktionen rumschmieren die man nicht versteht
)Neuer Versuch:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>$Form1 = GUICreate("ICQ Away Tool", 451, 346, 238, 121,0x80000000)
[/autoit] [autoit][/autoit] [autoit]
GUISetFont(8, 400, 0, "Comic Sans MS")
GUISetBkColor(0xFFFFFF)
$Pic1 = GUICtrlCreatePic("icqneww.jpg",0,0, 451, 346, -1,$GUI_WS_EX_PARENTDRAG)
$Label1 = GUICtrlCreateLabel("Wichtig! ICQ Fenster muss Links oben in der Ecke platziert sein.", 24, 96, 335, 19)
GUICtrlSetBkColor(-1, 0xF2FEEC)
$Input1 = GUICtrlCreateInput("Hier Nachricht eingeben", 32, 120, 281, 23)
GUICtrlSetBkColor(-1, 0xF2FEEC)
GUICtrlSetCursor (-1, 5)
$btnHid1 = GUICtrlCreateLabel('Start', 32, 168, 71, 34)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT )
GUICtrlSetState(-1, $GUI_ONTOP)
$btnHid2 = GUICtrlCreateLabel('Exit', 120, 165, 71, 34)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT )
GUICtrlSetState(-1, $GUI_ONTOP)GUISetState()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btnHid1
Start ()
Case $btnHid2
Ende ()
Endswitch
WEnd
Func Start ()
If TrayTip ("","Bot gestartet",3000) Then
Sleep (1000)
If WinWait("FENSTERNAME") Then
Sleep (500)
IF WinActivate ( "FENSTERNAME") Then
Sleep (1300)
WinMove("FENSTERNAME", "", 0, 0)
Sleep (3000)
EndIf
EndIf
EndIf
While 1
Dim $pixl=PixelSearch ( 25, 260, 133, 301, 0xDD5404, 10,0)
If not @error Then
sleep (1000)
MouseClick("left",30,355)
Sleep (1000)
send(GuiCtrlRead ($input1))
sleep (100)
Send ("{ENTER}")
EndIf
WEnd
EndFuncFunc Ende ()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit]
Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
If Not IsHWnd($btnHid2) Then $hWndLabel = GUICtrlGetHandle($btnHid2)
$hWndFrom = $ilParam
Switch $hWndFrom
Case $btnHid2, $hWndLabel
Ende()
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND (Bugfix - http://www.autoit.de)@all
[autoit]
Die oben vorgeschlagene Funktion stammt hier aus dem Forum (ka von wem)und lautet im Orignal
[/autoit]
Func _DoubleClickOnListView($hWnd, $Msg, $wParam, $lParam);Die Eigentliche Funktion
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3); Checkt wie das EVENT aussieht
If $wParam = $hListView Then;Wenn der Klick auf das ListView ging..
If $event = $N_DBLCLK Then;.. Wenn es ein DoppelKlick war
;die jeweilige Funktion
EndIf
EndIf
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>_DoubleClickOnListViewWie kann man diese Funktion für andere Gui-Elemente umbauen?
Ich verstehe die Dll- Sachen leider noch nicht
-
das klappt super

vielen dank für die hilfe
achja.. mit bild sieht das ganze natürlich netter aus..
das ganze ist noch nicht fertig.. feinheiten.. und kleine spielereien kommen natürlich noch rein
ich warte auf inspirationen
brauch halt noch ein paar ideen^^