#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $Guisize[2] = [@DesktopWidth, @DesktopHeight]
Global $GuiStyle[2] = [$WS_POPUPWINDOW,$WS_EX_TOOLWINDOW]
Global $GuiBKColor = 0x0
Global $LabelBKColor = 0x0
Global $LabelColor = 0x00FF00
Global $LabelSize[2] = [40,@DesktopHeight]
Global $LabelAmount = 50
Global $LabelFont = "TERMINAL"
Global $randomA[2] = [0,50]
Global $randomb[2] = [12,20]
Global $Words = "a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|1|2|3|4|5|6|7|8|9|0"
Global $Escapekey = "{ESC}"

Global $LabelOutput
Global $Label[$LabelAmount]
Global $Position[$LabelAmount]
Global $Position2[$LabelAmount]

$Words = StringSplit($Words,"|")

For $i = 0 To $LabelAmount - 1
	$Position[$i] = 0
	$Position2[$i] = Random($randomA[0],$randomA[1])
Next

$Form1 = GUICreate("CodeGen", $Guisize[0], $Guisize[1], 0, 0, $GuiStyle[0], $GuiStyle[1])
GUISetBkColor($GuiBKColor)

For $i = 0 To $LabelAmount - 1
	$Label[$i] = GUICtrlCreateLabel("", $i * 40, 0, $LabelSize[0], $LabelSize[1])
	GUICtrlSetBkColor($Label[$i],$LabelBKColor)
	GUICtrlSetColor($Label[$i],$LabelColor)
	GUICtrlSetFont($Label[$i],12,Default,Default,$LabelFont)
Next

GUISetState(@SW_SHOW)

AdlibRegister("_aCode",30)

HotKeySet($Escapekey,"_exit")

While 1
	Sleep(20)
WEnd

Func _exit()
	Exit
EndFunc

Func _aCode()
	For $i = 0 To $LabelAmount - 1
		$LabelOutput = ""
		If $Position2[$i] > 0 Then
			For $n = 0 To $Position2[$i]
				$LabelOutput &= @CRLF
			Next
		EndIf
		$Position[$i] += 1
		If $Position[$i] > Random($randomb[0],$randomb[1]) Then
			$Position[$i] = 1
			$Position2[$i] = Random($randomA[0],$randomA[1])
		EndIf
		For $n = 0 To $Position[$i]
			If Random(0,1) Then
				$LabelOutput &= $Words[Random(1,$Words[0])] & @CRLF
			Else
				$LabelOutput &= StringUpper($Words[Random(1,$Words[0])]) & @CRLF
			EndIf
		Next
		GUICtrlSetData($Label[$i],$LabelOutput)
	Next
EndFunc