Tratsch rund um Autoit / Autoit Talk | kleinere Fragen

05/28/2013 12:40 -STORM-#1321
Code:
$button_ok = 1
$button_cancel = 2
$button_failure = -1

$button_pressed = MsgBox(1, "Titel", "Text")

Switch $button_pressed
	Case $button_ok
		MsgBox(0,"","OK pressed")
	Case $button_cancel
		MsgBox(0,"","Cancel pressed")
	Case $button_failure
		MsgBox(0,"Timed out","No button pressed")
EndSwitch
Ein Blick in die AutoIt Hilfe hätte gereicht. ;)
Quote:
[...]
Return Value
Success: Returns the ID of the button pressed.
Failure: Returns -1 if the message box timed out.
[...]
05/28/2013 13:11 lolkop#1322
Quote:
Originally Posted by -STORM- View Post
Code:
$button_ok = 1
$button_cancel = 2
$button_failure = -1

$button_pressed = MsgBox(1, "Titel", "Text")

Switch $button_pressed
	Case $button_ok
		MsgBox(0,"","OK pressed")
	Case $button_cancel
		MsgBox(0,"","Cancel pressed")
	Case $button_failure
		MsgBox(0,"Timed out","No button pressed")
EndSwitch
Ein Blick in die AutoIt Hilfe hätte gereicht. ;)
selbst ohne die hilfe, kann man sich auch super selbst helfen...
Code:
$tmp = MsgBox(0, 'blubb', 'blah')
Switch $tmp
	Case -1
		ConsoleWrite('MsgBox timed out!'&@CRLF)
	Case Else
		ConsoleWrite('MsgBox returned: '&$tmp&@CRLF)
EndSwitch
je nach ausgabe, kann man so die switch abfrage erweitern
05/28/2013 20:56 YatoDev#1323
bitte um objektive meinungen und verbesserungs vorschläge ^^

[Only registered and activated users can see links. Click Here To Register...]
05/28/2013 21:29 Requi#1324
Code:
			While 1
				MouseClick("RIGHT", $bNPC[0], $bNPC[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bStart[0], $bStart[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bSelect[0], $bSelect[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bAccept[0], $bAccept[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bOrder[0], $bOrder[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bCraft[0], $bCraft[1], 1, 0)
				Sleep($time * 1000)
				MouseClick("RIGHT", $bNPC[0], $bNPC[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bStart[0], $bStart[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bSelect[0], $bSelect[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bAccept[0], $bAccept[1], 1, 0)
				Send("{SPACE}")
				Sleep(1000)
			WEnd
Ich habe das Problem, dass er sich nach einem Neustart darin verhackt und mehrere gleichzeitig klickt. Also so:

Abschnitt 1:
Code:
While 1
				MouseClick("RIGHT", $bNPC[0], $bNPC[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bStart[0], $bStart[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bSelect[0], $bSelect[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bAccept[0], $bAccept[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bOrder[0], $bOrder[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bCraft[0], $bCraft[1], 1, 0)
und

Abschnitt 2:
Code:
MouseClick("RIGHT", $bNPC[0], $bNPC[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bStart[0], $bStart[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bSelect[0], $bSelect[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bAccept[0], $bAccept[1], 1, 0)
				Send("{SPACE}")
				Sleep(1000)
			WEnd
Er vermischt sich zwischen den beiden und klickt doppelt.

Wie kann ich das beheben?
05/28/2013 21:42 lolkop#1325
Quote:
Originally Posted by Requι View Post
Code:
			While 1
				MouseClick("RIGHT", $bNPC[0], $bNPC[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bStart[0], $bStart[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bSelect[0], $bSelect[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bAccept[0], $bAccept[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bOrder[0], $bOrder[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bCraft[0], $bCraft[1], 1, 0)
				Sleep($time * 1000)
				MouseClick("RIGHT", $bNPC[0], $bNPC[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bStart[0], $bStart[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bSelect[0], $bSelect[1], 1, 0)
				Sleep(1000)
				MouseClick("LEFT", $bAccept[0], $bAccept[1], 1, 0)
				Send("{SPACE}")
				Sleep(1000)
			WEnd
wtf? o0

du solltest lieber mit zuständen arbeiten. so wird es dir möglich, zu jeder zeit an einem beliebigen punkt weiter zu machen.
05/28/2013 21:44 Requi#1326
Bessere Erklärung? :o

Ich weiß der Code ist nicht schön. Aber was meinst du mit Zuständen?
05/28/2013 22:30 lolkop#1327
Quote:
Originally Posted by Requι View Post
Bessere Erklärung? :o

Ich weiß der Code ist nicht schön. Aber was meinst du mit Zuständen?
eine art befehlszähler...
jeder befehlt erhält eine eigene id.

je nach befehlszähler zustand weist du so immer, welche id gerade auszuführen ist.

Edit:
bsp:
Code:
Dim $globalTimer, $counter, $time=3
Dim $bNPC[2]=[1.1,1.2], $bStart[2]=[2.1,2.2], $bSelect[2]=[3.1,3.2], $bAccept[2]=[4.1,4.2], $bOrder[2]=[5.1,5.2], $bCraft[2]=[6.1,6.2]

While Sleep(1)
	BetterMouseClick(0, 'right', $bNPC, 1000)
	BetterMouseClick(1, 'left', $bStart, 1000)
	BetterMouseClick(2, 'left', $bSelect, 1000)
	BetterMouseClick(3, 'left', $bAccept, 1000)
	BetterMouseClick(4, 'left', $bOrder, 1000)
	BetterMouseClick(5, 'left', $bCraft, 1000)
	BetterMouseClick(6, 'right', $bNPC, $time*1000)
	BetterMouseClick(7, 'left', $bStart, 1000)
	BetterMouseClick(8, 'left', $bSelect, 1000)
	BetterMouseClick(9, 'left', $bAccept, 1000)
	BetterSend(10, '{space}')
	If $counter>10 Then $counter=0
WEnd

Func BetterMouseClick($state, $key, $array, $timer=0)
	If $state=$counter And TimerDiff($globalTimer) >= $timer Then
		MouseClick($key, $array[0], $array[1], 1, 0)
		$globalTimer = TimerInit()
		$counter+=1
	EndIf
EndFunc

Func BetterSend($state, $key, $timer=0)
	If $state=$counter And TimerDiff($globalTimer) >= $time Then
		Send($key)
		$globalTimer = TimerInit()
		$counter+=1
	EndIf
EndFunc
05/29/2013 02:53 Requi#1328
Es geht jetzt, wie es soll. Ich habe ja eine config datei und ich habe die falsche Section ausgelesen. Besser gesagt, eine Section die gar nicht existiert. Habe anhand des Variablennamens beurteilt, wie es heißen soll und dann irgendwie dann was vertauscht.

Ich behalt mal das Script. Ich brauche es zwar 100% nicht, aber vllt braucht es jemand anderes ;)
05/30/2013 01:17 Achat#1329
@lolkop: Bitte kein DIM benutzen!

Quote:
You should use Local or Global, instead of Dim, to explicitly state which scope is desired for a variable/constant/array.
[Only registered and activated users can see links. Click Here To Register...]

MfG
05/30/2013 13:17 lolkop#1330
Quote:
Originally Posted by Achat View Post
@lolkop: Bitte kein DIM benutzen!

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

MfG
solange man sich ausserhalb von funktionen befindet, haben "Dim", "Local" und "Global" exakt die gleiche auswirkung (globale definition)...
Code:
Dim $a=1
Local $b=2
Global $c=3
a()
Func a()
	ConsoleWrite($a&@CRLF)
	ConsoleWrite($b&@CRLF)
	ConsoleWrite($c&@CRLF)
EndFunc
da ich eher faul bin, benutze ich deshalb ausserhalb von funktionen IMMER die kürzeste schreibweise :P
05/30/2013 18:44 meinselite#1331
Ist es möglich ein Label zu verstecken? Nicht löschen?
05/30/2013 18:45 YatoDev#1332
Quote:
Originally Posted by meinselite View Post
Ist es möglich ein Label zu verstecken? Nicht löschen?
ja

Edit -_-
GUICtrlSetState ( $label, $GUI_HIDE )
05/30/2013 18:58 meinselite#1333
Ach, ich dacht des wäre ein Makro und hab mich schon gewundert warum es nicht geht.

meinselite
05/30/2013 19:26 YatoDev#1334
Quote:
Originally Posted by meinselite View Post
Ach, ich dacht des wäre ein Makro und hab mich schon gewundert warum es nicht geht.

meinselite
makros kannst du nur bei forms verwenden hier musst du die variablen aus den gui includes nehmen
06/03/2013 17:28 .yorliK#1335
Hey,

ich wollte meinen 'Musicplayer' mit einer Add Song to Playlist funktion verbessern, aber irgendwie fügt er mir das neue Lied nicht hinzu..

Hier der code zum erstellen der Playlist
und hier der code der das neue Lied hinzufügen soll ähnelt dem anderen:

Ich hab mich schonmal im Internet umgeguckt und diesen code gefunden. Es soll mit dem code, das vorhandene auslesen und mit dem neuen wieder reinschreiben..
Code:
IniWrite(@ScriptDir & "\Playlist.kilroy", "Playlist", IniReadSection(@ScriptDir & "\Playlist.kilroy", "Playlist") & "Lied" & $i - 1, $fSplit[0] & "\" & $fSplit[$i])
Mfg
Kilroy.