autoBert: Er hat doch in seinem Skript gleich am Anfang die Variable $x deklariert.
Beiträge von Ineluki
-
-
[autoit]
GUIRegisterMsg(0x0201, "FUNKTION")
[/autoit] -
Die Lösung:
[autoit]HttpSetUserAgent("Irgendetwas, nur nicht AutoIt")
[/autoit] -
Also bei mir läufts auch flüssig. Oder meinst du den Speed, mit dem sich die Figur bewegt? Wenn ja, guck mal in deinen verwendeten Variablen

-
Tolles Script, ich liebe mich zu 75%

-
C# ist eine neuere Programmiersprache, die eig wie eine vereinfachte Version von C# ist.

Aber in dem Punkt "die Sprache, die man am sympathischsten findet, lernt man am besten" kann ich dir nur zustimmen. -
-
1. Es fehlt #include <EditConstants.au3>
2. Poste den AUtoIt Code hier im Forum, nicht als Anhang.
3. "kommt bei mir eine Fehlermeldung" Das hilft nicht sehr viel. Du solltest auch den Fehler posten. -
Wenn man den Text, die Position oder irgendetwas anderes ändert, funktioniert es.
Wieso soll man sich mit einer langen Lösung rumquälen, wenn es auch mit einem Einzeiler gut geht?
Was ist daran so schlimm, wenn sich der Fenstertitel ändert? Man muss diesen ja nicht benutzen, man kann auch ein Handle benutzen
-
[autoit]
ControlClick
[/autoit] -
FileOpenDialog ändert @WorkingDir. Wenn du bei FileRead keinen Pfad angibst, wird @WorkingDir verwendet.
-
Was meinst du mit "beste"? Die, die man am leichtesten lernen kann, die, die am mächtigsten ist, ...?
-
[autoit]
GUICtrlRead
[/autoit]
; und
GUICtrlGetState -
Wenn ein Control angeklickt wurde, liegt ja auf diesem meist der Focus. Vllt. könnte man damit abfragen, welches Control zuletzt geklickt wurde.
-
Kannst auch ein Label auf die Stelle tun und einen Klick darauf abfragen.
-
Es ist auch völlig sinnlos, für ein OS Spiel, was zudem noch so sinnlos ist, einen Hack zu schreiben [Blockierte Grafik: http://www.shinyglurak.de/images/users/u2/30070/smilies/facepalm.gif]
-
So flackerts zwar kaum, aber optimal ist die Lösung auch nicht:
Spoiler anzeigen
[autoit]Global $clicks=0, $time=1, $hTimer="", $mode=0
[/autoit]
$hGUI = GUICreate("Click Me!", 200, 300, 192, 124)
GUISetBKColor(0xFFFFFF)
$cLabel = GUICtrlCreateLabel("0", 75, 95, 200, 200)
GUICtrlSetState(-1, 128)
GUICtrlSetFont(-1, 60)
$btn1 = GUICtrlCreateButton("Click Me", 4, 125, 192, 25)
$TimeP = GUICtrlCreateLabel("", 0, 290, 200, 5)
GUICtrlSetBkColor(-1, 0x00FF00)
GUISetState()
GUIRegisterMsg(0x0201, "WM_LBUTTONDOWN")
setHotKeys()
AdlibRegister("RefreshTimeLabel", 50)
While true
Switch GUIGetMsg()
Case -3
Exit
Case $btn1
If $clicks=0 Then
$hTimer=TimerInit()
$clicks+=1
GUICtrlSetData($cLabel, $clicks)
GUICtrlSetPos($btn1, 4, Random(8, 260))
Else
If $mode=1 Then
loose()
ContinueLoop
EndIf
$time=1000-TimerDiff($hTimer)+1
$hTimer=TimerInit()
$clicks+=1
GUICtrlSetPos($btn1, 4, Random(8, 260))
GUICtrlSetData($cLabel, $clicks)
If $clicks=10 Then GUICtrlSetPos($cLabel, 55, 95)
If $clicks=100 Then GUICtrlSetPos($cLabel, 35, 95)
If $clicks=1000 Then GUICtrlSetPos($cLabel, 15, 95)
$random=Random(1, 5, 1)
If $random>1 Then $mode=0
If $random=1 Then $mode=1
If $mode=1 Then GUICtrlSetData($btn1, "Don't Click Me!")
If $mode=0 Then GUICtrlSetData($btn1, "Click Me!")
EndIf
EndSwitch
If NOt WinActive($hGUI) Then
unSetHotKeys()
While Not WinActive($hGUI)
sleep(100)
WEnd
setHotKeys()
EndIf
If TimerDiff($hTimer)>1000 And $hTimer<>"" Then
If $mode=1 Then
$hTimer=TimerInit()
$mode=0
GUICtrlSetData($btn1, "Click Me!")
ContinueLoop
EndIf
loose()
EndIf
WEnd
Func setHotKeys()
HotKeySet("{SPACE}", "doNothing")
HotKeySet("{ENTER}", "doNothing")
EndFunc
Func unSetHotKeys()
HotKeySet("{SPACE}")
HotKeySet("{ENTER}")
EndFunc
Func doNothing()
EndFunc
Func WM_LBUTTONDOWN()
$aCursor=GUIGetCursorInfo()
If IsArray($aCursor) Then
If $aCursor[4]<>$btn1 Then loose()
EndIf
EndFunc
Func loose()
MsgBox(0, "Verloren", "Du hast mit "&$clicks&" Klicks verloren.")
$hTimer=""
$clicks=0
$mode=0
GUICtrlSetData($btn1, "Click Me!")
GUICtrlSetPos($cLabel, 75, 95)
GUICtrlSetData($cLabel, "0")
GUICtrlSetPos($TimeP, 0, 290, 200)
EndFunc
Func RefreshTimeLabel()
If $hTimer<>"" Then GUICtrlSetPos($TimeP, 0, 290, (1000-TimerDiff($hTimer))*2/10)
EndFunc -
Hab den Don't Click me Button eingebaut. Da die Zeit Anzeuige als Label flackert, wollte ich es auf GDI+ umbauen, da ich jedoch keinen Backbuffer einbauen kann (da sonst die Control verschwinden) flackert dies auch. Hat vllt. jemand eine Lösung?
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit]
Global $clicks=0, $time=1, $hTimer="", $mode=0
_GDIPlus_Startup()
$linePen=_GDIPlus_PenCreate(0xFF00FF00, 5)
$bgPen=_GDIPlus_PenCreate(0xFFFFFFFF, 5)
$hGUI = GUICreate("Click Me!", 200, 300, 192, 124)
GUISetBKColor(0xFFFFFF)
$hGraphics=_GDIPlus_GraphicsCreateFromHWND($hGUI)
$cLabel = GUICtrlCreateLabel("0", 75, 95, 200, 200)
GUICtrlSetState(-1, 128)
GUICtrlSetFont(-1, 60)
$btn1 = GUICtrlCreateButton("Click Me", 4, 125, 192, 25)
;~ $TimeP = GUICtrlCreateLabel("", 0, 290, 200, 5)
;~ GUICtrlSetBkColor(-1, 0x00FF00)
GUISetState()
_GDIPlus_GraphicsDrawLine($hGraphics, 0, 290, 200, 290, $LinePen)
GUIRegisterMsg(0x0201, "WM_LBUTTONDOWN")
setHotKeys()
While True
Switch GUIGetMsg()
Case -3
_GDIPlus_PenDispose($linePen)
_GDIPlus_PenDispose($bgPen)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_Shutdown()
Exit
Case $btn1
If $clicks=0 Then
$hTimer=TimerInit()
$clicks+=1
GUICtrlSetData($cLabel, $clicks)
GUICtrlSetPos($btn1, 4, Random(8, 260))
Else
If $mode=1 Then
loose()
ContinueLoop
EndIf
$time=1000-TimerDiff($hTimer)+1
$hTimer=TimerInit()
$clicks+=1
GUICtrlSetPos($btn1, 4, Random(8, 260))
GUICtrlSetData($cLabel, $clicks)
If $clicks=10 Then GUICtrlSetPos($cLabel, 55, 95)
If $clicks=100 Then GUICtrlSetPos($cLabel, 35, 95)
If $clicks=1000 Then GUICtrlSetPos($cLabel, 15, 95)
$random=Random(1, 5, 1)
If $random>1 Then $mode=0
If $random=1 Then $mode=1
If $mode=1 Then GUICtrlSetData($btn1, "Don't Click Me!")
If $mode=0 Then GUICtrlSetData($btn1, "Click Me!")
EndIf
EndSwitch
If NOt WinActive($hGUI) Then
unSetHotKeys()
While Not WinActive($hGUI)
sleep(100)
WEnd
setHotKeys()
EndIf
If $hTimer<>"" Then _GDIPlus_GraphicsDrawLine($hGraphics, 0, 290, 200, 290, $bgPen)
If $hTimer<>"" Then _GDIPlus_GraphicsDrawLine($hGraphics, 0, 290, (1000-TimerDiff($hTimer))*2/10, 290, $LinePen)
If TimerDiff($hTimer)>1000 And $hTimer<>"" Then
If $mode=1 Then
$hTimer=TimerInit()
$mode=0
GUICtrlSetData($btn1, "Click Me!")
ContinueLoop
EndIf
loose()
EndIf
WEnd
Func setHotKeys()
HotKeySet("{SPACE}", "doNothing")
HotKeySet("{ENTER}", "doNothing")
EndFunc
Func unSetHotKeys()
HotKeySet("{SPACE}")
HotKeySet("{ENTER}")
EndFunc
Func doNothing()
EndFunc
Func WM_LBUTTONDOWN()
$aCursor=GUIGetCursorInfo()
If IsArray($aCursor) Then
If $aCursor[4]<>$btn1 Then loose()
EndIf
EndFunc
Func loose()
MsgBox(0, "Verloren", "Du hast mit "&$clicks&" Klicks verloren.")
$hTimer=""
$clicks=0
$mode=0
GUICtrlSetData($btn1, "Click Me!")
GUICtrlSetPos($cLabel, 75, 95)
GUICtrlSetData($cLabel, "0")
_GDIPlus_GraphicsDrawLine($hGraphics, 0, 290, 200, 290, $LinePen)
EndFunc
Die Klicks dürften jetzt bis 9999 vollständig erkennbar sein, ich denke soweit kommt man nicht
Wie tief ich gesunken bin? So tief, wie es nur geht
-
Hab gestern die (extrem sinnlose) App "Touch Me" fürn iPod entdeckt. Und da ich sowieso zu viel Langeweile hab, hab ichs gleich mal nachgemacht (Ist nichts großes...):
Spoiler anzeigen
[autoit]Global $clicks=0, $time=1, $hTimer=""
[/autoit]
$hGUI = GUICreate("Click Me!", 200, 300, 192, 124)
$cLabel = GUICtrlCreateLabel("0", 75, 95, 100, 100)
GUICtrlSetState(-1, 128)
GUICtrlSetFont(-1, 60)
$btn1 = GUICtrlCreateButton("Click Me", 4, 125, 192, 25)
$TimeP = GUICtrlCreateLabel("", 0, 290, 200, 5)
GUICtrlSetBkColor(-1, 0x00FF00)
GUISetState()
GUIRegisterMsg(0x0201, "WM_LBUTTONDOWN")
setHotKeys()
While True
Switch GUIGetMsg()
Case -3
Exit
Case $btn1
If $clicks=0 Then
$hTimer=TimerInit()
$clicks+=1
GUICtrlSetData($cLabel, $clicks)
GUICtrlSetPos($btn1, 4, Random(8, 260))
Else
$time=1000-TimerDiff($hTimer)+1
$hTimer=TimerInit()
$clicks+=1
GUICtrlSetPos($btn1, 4, Random(8, 260))
GUICtrlSetData($cLabel, $clicks)
If $clicks=10 Then GUICtrlSetPos($cLabel, 55, 95)
EndIf
EndSwitch
If NOt WinActive($hGUI) Then
unSetHotKeys()
While Not WinActive($hGUI)
sleep(100)
WEnd
setHotKeys()
EndIf
If $hTimer<>"" Then GUICtrlSetPos($TimeP, 0, 290, (1000-TimerDiff($hTimer))*2/10, 5)
If TimerDiff($hTimer)>1000 And $hTimer<>"" Then
MsgBox(0, "Verloren", "Du hast mit "&$clicks&" Klicks verloren.")
$hTimer=""
$clicks=0
GUICtrlSetPos($TimeP, 0, 290, 200, 5)
GUICtrlSetPos($cLabel, 75, 95)
GUICtrlSetData($cLabel, "0")
EndIf
WEnd
Func setHotKeys()
HotKeySet("{SPACE}", "doNothing")
HotKeySet("{ENTER}", "doNothing")
EndFunc
Func unSetHotKeys()
HotKeySet("{SPACE}")
HotKeySet("{ENTER}")
EndFunc
Func doNothing()
EndFunc
Func WM_LBUTTONDOWN()
$aCursor=GUIGetCursorInfo()
If IsArray($aCursor) Then
If $aCursor[4]<>$btn1 Then
MsgBox(0, "Verloren", "Du hast mit "&$clicks&" Klicks verloren.")
$hTimer=""
$clicks=0
GUICtrlSetPos($TimeP, 0, 290, 200, 5)
GUICtrlSetPos($cLabel, 75, 95)
GUICtrlSetData($cLabel, "0")
EndIf
EndIf
EndFunc -
Guck dir den Befehl StdOutRead nochmal in der Hilfe an...