|
You last visited: Today at 10:10
Advertisement
[GUI]Tastendruck nach Timer klappt nicht
Discussion on [GUI]Tastendruck nach Timer klappt nicht within the AutoIt forum part of the Coders Den category.
05/28/2012, 20:12
|
#1
|
elite*gold: 0
Join Date: Mar 2010
Posts: 91
Received Thanks: 3
|
[GUI]Tastendruck nach Timer klappt nicht
Hey ich wollte, dass nachdem die Checkbox "Drop" aktiviert wurde, dass dann "x" gedrückt wird, aber iwie funktioniert das nicht. Ich hoffe jmd. weiß, was ich falsch gemacht hab =)
Hier der Code:
Code:
#include <GUIConstantsEx.au3>
global $countindf = 0, $count = 0
$Gui = GUICreate("NosBot", 250, 250, 500, 250)
$drop = GUICtrlCreateCheckbox("Drop", 10, 50, 120, 20)
$sa = GUICtrlCreateCheckbox("Direkt an Nostale senden", 10, 75, 150, 20)
$label = GUICtrlCreateLabel("NosBot",90, 10, 70, 35)
GUICTRLSETFONT(-1,15,800,5)
GUISetState()
While 1
$droprd = GUICtrlRead($drop)
$sard = GUICtrlRead($sa)
$msg = GUIGetMsg()
Select
Case $msg = -3
ExitLoop
EndSelect
$count += 4
$countindf += 4
If $countindf = 300 and $sard = 1 and $droprd = 1 Then
$countindf = 0
ControlSend("NosTale", "", "", "{x}")
EndIf
If $count = 300 and $sard = 4 and $droprd = 1 Then
$count = 0
Send("{x}")
EndIf
WEnd
Danke schonmal =)
|
|
|
05/28/2012, 21:53
|
#2
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Für was soll das hochzählen gut sein? Du hast überhaupt kein Sleep in deiner Schleife, der Wert von 300 ist schneller erreicht, als dass der User die Checkbox auswählt, deshalb trifft die Bedingung auch nie zu. Frag ob, ob der Wert über 300 ist und nicht 300. Die Verwendung eines richtigen Timers wäre aber besser, da dieser "Timer" sehr ungenau ist.

|
|
|
05/29/2012, 10:28
|
#3
|
elite*gold: 0
Join Date: Mar 2010
Posts: 91
Received Thanks: 3
|
Ahh.. Danke.. ich hab es mir mal durchgelesen, jetzt klappt die ganze Sache auch soweit =)
Mit Sleep wollte ich nicht arbeiten, da das das Script blockiert..
Hier der Code, falls jmd. das selbe Problem hat.
Code:
#include <GUIConstantsEx.au3>
global $sleeptime = 300
$timer = TimerInit()
$Gui = GUICreate("NosBot", 250, 250, 500, 250)
$drop = GUICtrlCreateCheckbox("Drop", 10, 50, 120, 20)
$sa = GUICtrlCreateCheckbox("Direkt an Nostale senden", 10, 75, 150, 20)
$label = GUICtrlCreateLabel("NosBot",90, 10, 70, 35)
GUICTRLSETFONT(-1,15,800,5)
GUISetState()
While 1
$droprd = GUICtrlRead($drop)
$sard = GUICtrlRead($sa)
$msg = GUIGetMsg()
Select
Case $msg = -3
ExitLoop
EndSelect
If TimerDiff($timer)>=$sleeptime And $sard = 1 and $droprd = 1 Then
$timer=TimerInit()
ControlSend("NosTale", "", "", "{x}")
EndIf
If TimerDiff($timer)>=$sleeptime And $sard = 4 and $droprd = 1 Then
$timer=TimerInit()
Send("{x}")
EndIf
WEnd
|
|
|
05/29/2012, 18:08
|
#4
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Dein Code sieht aber schlampig aus. Wenn die Bedingung zutrifft und die Checkbox "Drop" ausgewählt wurde, kannst du im Anweisungsblock eine weitere Abfrage erstellen, ob die Checkbox "Direkt..." ausgewählt wurde.
Code:
#include <GUIConstantsEx.au3>
GUICreate("NosBot", 250, 250)
$ckb_Drop = GUICtrlCreateCheckbox("Drop", 10, 50, 120, 20)
$ckb_Send = GUICtrlCreateCheckbox("Direkt an Nostale senden", 10, 75, 150, 20)
GUICtrlCreateLabel("NosBot",90, 10, 70, 35)
GUICtrlSetFont(-1, 15, 800, 5)
GUISetState()
$dwSleepTime = 300
$qwTimer = TimerInit()
While Sleep(50)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
If TimerDiff($qwTimer) >= $dwSleepTime And GUICtrlRead($ckb_Drop) == $GUI_CHECKED Then
If GUICtrlRead($ckb_Send) == $GUI_CHECKED Then
Send("{x}")
Else
ControlSend("NosTale", "", "", "{x}")
EndIf
$qwTimer = TimerInit()
EndIf
WEnd
Wenn du dir evtl. mal eine Hochsprache aneignen möchtest, solltest du dir gleich angewöhnen "==" als Vergleichsoperator zu benutzen, "=" ist ein Zuweisungsoperator. Das ist ein häufiger Anfängerfehler bei einem Umstieg.
|
|
|
 |
Similar Threads
|
[C#]Timer nach an 1 Sekunde kriegen
12/01/2011 - .NET Languages - 6 Replies
Hey,
hab n kleines Problem zu dem ich Hilfe bräuchte.
Es handelt sich darum, dass ich einen Timer haben will genau an der Systemzeit arbeitet.
Was ich bis jetz habe is das ich Versuche mit einem einfachem Timer ne Zeitangabe ausgebe die aber nach kurzer Zeit schon eine zu große Verschieben zur Systemzeit hat.
Mein Code bisher
private void Timer_Tick(object sender, EventArgs e)
{
sekunden++;
if (sekunden == 60)
|
BBC2 online klappt nicht mehr nach Neu Installation belohnung 19E*G
05/09/2011 - Origin Trading - 2 Replies
Hallo liebe Community,
ich habe ein Problem mit BBC 2 online.
Ich habe mir das Spiel als es neu heraus gekommen
ist gekauft und es 2 Monate nicht mehr gespielt.
Ich habe das Update gemacht aber dann hat etwas
im Spiel nicht funktioniert und ich habe es neu installiert
nach der installation und dem Update musste ich mich
mit meinem Account anmelden und den Code eingeben,
der auf der CD Verpackung steht.
|
BBC2 online klappt nicht mehr nach Neu Installation Belohnung von 19
05/07/2011 - Battlefield - 3 Replies
Hallo liebe Community,
ich habe ein Problem mit BBC 2 online.
Ich habe mir das Spiel als es neu heraus gekommen
ist gekauft und es 2 Monate nicht mehr gespielt.
Ich habe das Update gemacht aber dann hat etwas
im Spiel nicht funktioniert und ich habe es neu installiert
nach der installation und dem Update musste ich mich
mit meinem Account anmelden und den Code eingeben,
der auf der CD Verpackung steht.
|
Nooby frage "Autoit wartet nicht auf den tastendruck sonder macht gleich die funtkion
03/25/2011 - AutoIt - 2 Replies
Also probier grad so rum und stell fest das wenn ich mein script starte mit F5 per autoit das programm garnicht erst wartet bis ich wie in meinen script meinen hotkey drücke sonder führt gleich die funktion aus
das wär jetzt mein script wollte eigentlich ausprobieren ob der fenstertitel so richtig ist und er ist es aber autoit wartet halt nicht bis ich mein hotkey "t" drücke sonder activiert das fenster sobalt ich das script per F5 ausführe????
der fehler ist mir schon ein paar mal...
|
Nach Tastendruck alle Symbole fett!
03/26/2010 - Technical Support - 10 Replies
Folgendes Problem:
Die Schwester einer Freundin hat auf dem Pc irgendeine Taste gedrückt und jetzt sind alle Symbole fett angezeigt!
Wer von euch kennt das und weiß wie man das behebt?
Thx sei euch gewiss!
Grüße :)
|
All times are GMT +1. The time now is 10:11.
|
|