Hi ihr alle
Ich habe eines der "Matrix"-Scripte aus eurem kleinen Programmierwettbewerb aufgegriffen und wollte es dahingehend anpassen, das es mittels Mausbewegung und "Any Key" beendet werden kann.
Das wäre als Bildschirmschoner ja angebracht.
Hier nun mein Versuch:
Spoiler anzeigen
#include <GUIConstants.au3>
Opt("GUIOnEventMode",1)
Global $a = 48 ; Anzahl der Spalten
Global $sp[$a+1], $w = @DesktopWidth, $h = @DesktopHeight
GUICreate('Matrix', $w, $h, -1, -1, BitOr($WS_MAXIMIZE,$WS_POPUP))
GUISetOnEvent($GUI_EVENT_CLOSE,"_Ende") ; ESC-Taste beendet
GUISetOnEvent($GUI_EVENT_MOUSEMOVE,"_Ende") ; Mausbewegung beendet
GUISetBKColor(0x000000)
For $i = 0 To $a
$sp[$i] = GUICtrlCreateLabel('', 10+$i*Ceiling($w/($a)), 0, 18, $h, $SS_RIGHT)
GUICtrlSetFont(-1, 12, 800, 0, 'Verdana')
GUICtrlSetColor(-1, 0x00ff00)
Next
GUISetState()
GUISetCursor(16,1) ; Mauszeiger verstecken
GUIRegisterMsg($WM_KeyDown,"_Ende") ; jeder Tastendruck soll beenden
$f = 0
While 1
If $f = 0 Then
$y = Random(0, $a, 1)
$y1 = Random(0, $a, 1)
$y2 = Random(0, $a, 1)
EndIf
If Not($y=$y1 And $y=$y2) Then
$r = StringLeft(GUICtrlRead($sp[$y]), 160)
Switch Mod($y, 2)
Case 0
$c = StringRegExpReplace(Chr(Random(32, 122, 1)), '[@]', ' ' & @LF & ' ')
Case Else
$c = StringMid('123 456 789', Random(1, 11, 1), 1)
EndSwitch
$x = $y
Else
$f += 1
If $f = 160 Then $f = 0
$c = ' '
$x = Random(0, $a, 1)
$r = StringLeft(GUICtrlRead($sp[$x]), 160)
EndIf
GUICtrlSetData($sp[$x], $c & @LF & $r)
WEnd
Func _Ende()
GUISetCursor(2,0)
Exit
EndFunc
Nun funktioniert aber das Beenden beim Tastendruck nicht. Nehme ich die "GUICtrlCreateLabel" (Zeilen 10-14) heraus, dann klappt es wie auch in folgendem kleinen Test:
Spoiler anzeigen
#include <GUIConstants.au3>
Opt("GUIOnEventMode",1)
GUICreate("AnyKey Test", 175, 150)
GUISetOnEvent($GUI_EVENT_CLOSE,"_Ende")
;GUISetOnEvent($GUI_EVENT_MOUSEMOVE,"_Ende")
GUISetState()
GUIRegisterMsg($WM_KeyDown,"_Ende")
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(10)
Wend
Func _Ende()
Exit
EndFunc
Hat jemand eine Lösung dafür ?
Besten Dank für eure Hilfe
micha_he