ColorEcho/ColorEcho.au3

516 lines
23 KiB
Plaintext
Raw Permalink Blame History

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=ColorEcho.ico
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Change2CUI=y
#AutoIt3Wrapper_Res_Comment=http://znil.net/index.php?title=ZnilTools:ColorEcho.exe
#AutoIt3Wrapper_Res_Description=http://znil.net/index.php?title=ZnilTools:ColorEcho.exe
#AutoIt3Wrapper_Res_Fileversion=1.2.0.2
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=p
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Include <WinAPI.au3>
;Grundfarben
Local Const $FOREGROUND_BLUE = 0x1
Local Const $FOREGROUND_GREEN = 0x2
Local Const $FOREGROUND_RED = 0x4
Local Const $BACKGROUND_BLUE = 0x10
Local Const $BACKGROUND_GREEN = 0x20
Local Const $BACKGROUND_RED = 0x40
Local Const $BACKGROUND_INTENSITY = 0x80
Local Const $BACKGROUND_SEARCH = 0x20
Local Const $FOREGROUND_INTENSITY = 0x8
Local Const $FOREGROUND_SEARCH = 0x10
;Vordergrundfarben F ore G round = FG_
Global Const $FG_BLACK = 0
Global Const $FG_BLUE = BitOR($FOREGROUND_BLUE, $FOREGROUND_INTENSITY)
Global Const $FG_BROWN = BitOR($FOREGROUND_RED, $FOREGROUND_GREEN)
Global Const $FG_DARKBLUE = $FOREGROUND_BLUE
Global Const $FG_DARKGREY = $FOREGROUND_INTENSITY
Global Const $FG_GREEN = $FOREGROUND_GREEN
Global Const $FG_GREY = BitOR($FOREGROUND_RED, $FOREGROUND_GREEN, $FOREGROUND_BLUE)
Global Const $FG_LIGHTBLUE = BitOR($FOREGROUND_BLUE, $FOREGROUND_GREEN, $FOREGROUND_INTENSITY)
Global Const $FG_LIGHTGREEN = BitOR($FOREGROUND_GREEN, $FOREGROUND_INTENSITY)
Global Const $FG_PINK = BitOR($FOREGROUND_RED, $FOREGROUND_BLUE, $FOREGROUND_INTENSITY)
Global Const $FG_RED = $FOREGROUND_RED
Global Const $FG_ROSE = BitOR($FOREGROUND_RED, $FOREGROUND_INTENSITY)
Global Const $FG_TURQUOISE = BitOR($FOREGROUND_BLUE, $FOREGROUND_GREEN)
Global Const $FG_VIOLET = BitOR($FOREGROUND_RED, $FOREGROUND_BLUE)
Global Const $FG_WHITE = BitOR($FOREGROUND_RED, $FOREGROUND_GREEN, $FOREGROUND_BLUE, $FOREGROUND_INTENSITY)
Global Const $FG_YELLOW = BitOR($FOREGROUND_RED, $FOREGROUND_GREEN, $FOREGROUND_INTENSITY)
;Hintergrundfarben B ack Ground = BG_
Global Const $BG_BLACK = 0
Global Const $BG_BLUE = BitOR($BACKGROUND_BLUE, $BACKGROUND_INTENSITY)
Global Const $BG_BROWN = BitOR($BACKGROUND_RED, $BACKGROUND_GREEN)
Global Const $BG_DARKBLUE = $BACKGROUND_BLUE
Global Const $BG_DARKGREY = $BACKGROUND_INTENSITY
Global Const $BG_GREEN = $BACKGROUND_GREEN
Global Const $BG_GREY = BitOR($BACKGROUND_RED, $BACKGROUND_GREEN, $BACKGROUND_BLUE)
Global Const $BG_LIGHTBLUE = BitOR($BACKGROUND_BLUE, $BACKGROUND_GREEN, $BACKGROUND_INTENSITY)
Global Const $BG_LIGHTGREEN = BitOR($BACKGROUND_GREEN, $BACKGROUND_INTENSITY)
Global Const $BG_PINK = BitOR($BACKGROUND_RED, $BACKGROUND_BLUE, $BACKGROUND_INTENSITY)
Global Const $BG_RED = $BACKGROUND_RED
Global Const $BG_ROSE = BitOR($BACKGROUND_RED, $BACKGROUND_INTENSITY)
Global Const $BG_TURQUOISE = BitOR($BACKGROUND_BLUE, $BACKGROUND_GREEN)
Global Const $BG_VIOLET = BitOR($BACKGROUND_RED, $BACKGROUND_BLUE)
Global Const $BG_WHITE = BitOR($BACKGROUND_RED, $BACKGROUND_GREEN, $BACKGROUND_BLUE, $BACKGROUND_INTENSITY)
Global Const $BG_YELLOW = BitOR($BACKGROUND_RED, $BACKGROUND_GREEN, $BACKGROUND_INTENSITY)
Global $DefaultWerte = RegRead("HKEY_CURRENT_USER\Console","ScreenColors")
Global $DefaultBackground = Int("0x000000" & Stringmid(hex($DefaultWerte),7,1) & "0")
Global $DefaultForeground = Int(Stringmid(hex($DefaultWerte),8,1))
Global $ZeigerConsole
Global $ZeigerCmdLine = 1
Global $NewBackground
Global $NewForeground
; ###################################################################################
; H I L F E - T E X T
; ###################################################################################
; 10 20 30 40 50 60 70 80
; 12345678901234567890123456789012345678901234567890123456789012345678901234567890
Dim $Header = "+------------------------------------------------------------------------------" & @CRLF & _
"| ColorEcho - Version " & FileGetVersion(@ScriptName) & @CRLF & _
"+------------------------------------------------------------------------------" & @CRLF & _
"| 2011 von Bernhard Linz f<>r http://znil.net - Kontakt: Bernhard@znil.net" & @CRLF & _
"+------------------------------------------------------------------------------" & @CRLF & _
@CRLF
; 10 20 30 40 50 60 70 80
; 12345678901234567890123456789012345678901234567890123456789012345678901234567890
Dim $HilfeText = "Kann wie das normale Echo Text in einer Eingabeaufforderung / DOS-Box ausgeben." & @CRLF & _
"Dabei kann aber die Hintergundfarbe und Textfarbe im Rahmen der DOS-Farbtabelle" & @CRLF & _
"gew<65>hlt werden." & @CRLF & _
"-------------------------------------------------------------------------------" & @CRLF & _
@CRLF & _
"1. Normaler Aufruf:" & @CRLF & _
@ScriptName & " [Hintergrundfarbe] [Vordergrundfarbe] [Text]" & @CRLF & _
@CRLF & _
"2. Aufruf ohne neue Zeile: (Nachfolgender Text erscheint dahinter)" & @CRLF & _
@ScriptName & " /NoCRLF [Hintergrundfarbe] [Vordergrundfarbe] [Text]" & @CRLF & _
@CRLF & _
"3. Farben pauschal <20>ndern: (Standardfarben werden nicht wieder hergestellt)" & @CRLF & _
@ScriptName & " /change [Hintergrundfarbe] [Vordergrundfarbe]" & @CRLF & _
@CRLF & _
"4. Voreinstellung wieder herstellen: (Standard bei 1. und 2.)" & @CRLF & _
@ScriptName & " /reset" & @CRLF & _
"-------------------------------------------------------------------------------" & @CRLF & _
@CRLF & _
"[Hintergundfarbe] : eine der 16 DOS Farben, siehe Farbtabelle" & @CRLF & _
"[Vordergrundfarbe] : eine der 16 DOS Farben, siehe Farbtabelle" & @CRLF & _
"[Text] : Der Text der ausgegeben werden soll" & @CRLF & _
"/NoCRLF : Unterdr<64>ckt das Erzeugen einer neuen Zeile, z.B." & @CRLF & _
" f<>r verschiedene Farben innerhalb einer Zeile" & @CRLF & _
"/change : Stellt die Farben f<>r alle nachfolgenden Ausgaben" & @CRLF & _
" um, also auch Text anderer Programme." & @CRLF & _
"/reset : Voreingestellte Farben werden wieder verwendet," & @CRLF & _
" wird autoamtisch nach jeder Zeile ausgef<65>hrt," & @CRLF & _
" /change unterdr<64>ckt dies." & @CRLF & _
@CRLF & _
"Beispiele:" & @CRLF & _
"----------" & @CRLF
; 10 20 30 40 50 60 70 80
; 12345678901234567890123456789012345678901234567890123456789012345678901234567890
$Disclaimer = "+------------------------------------------------------------------------------" & @CRLF & _
"| ColorEcho.exe ist FREEWARE! Kopieren, weitergeben ausdr<64>cklich erlaubt!" & @CRLF & _
"| Die jeweils aktuelleste Version und Anleitungen findet Ihr unter:" & @CRLF & _
"| http://znil.net/index.php?title=ZnilTools:ColorEcho.exe" & @CRLF & _
"+------------------------------------------------------------------------------" & @CRLF
; ###################################################################################
; F U N C T I O N E N / S U B R O U T I N E N
; ###################################################################################
; ###################################################################################
; Der eigentliche Farbwechsel
Func _Console_ChangeColor ($zConsole, $Color)
; BLinz
Local $aRes = DllCall("kernel32.dll", "bool", "SetConsoleTextAttribute","handle", $zConsole, "word", $Color)
EndFunc
; ###################################################################################
; _ANSI2OEM l<>st das Problem mit dem Umlauten und anderen Sonderzeichen. Es wandelt Text so um das er korrekt in der DOS-Box dargestellt wird
; So k<>nnen hier im Quellcode auch Umlaute verwendet werden (in den Textausgaben) und diese werden dann korrekt dargestellt
; Dank an Xenobiologist von AutoIt.de f<>r diese L<>sung: http://www.autoit.de/index.php?page=Thread&threadID=9461&highlight=ANSI2OEM
Func _ANSI2OEM($text)
$text = DllCall('user32.dll', 'Int', 'CharToOem', 'str', $text, 'str', '')
Return $text[2]
EndFunc ;==>_ANSI2OEM
; ###################################################################################
; Hilfsroutine die den Hilfetext ausgibt
Func _HilfeAusgeben()
ConsoleWrite(_ANSI2OEM($Header))
ConsoleWrite(_ANSI2OEM($HilfeText))
; 10 20 30 40 50 60 70 80
; 12345678901234567890123456789012345678901234567890123456789012345678901234567890
ConsoleWrite(_ANSI2OEM("Beispiel 1 : Blauer Text mit voreingestellten Hintergrund" & @CRLF))
ConsoleWrite(_ANSI2OEM("Aufruf : ColorEcho BLUE Dieser Text ist BLAU!" & @CRLF))
ConsoleWrite(_ANSI2OEM("Ergebnis : "))
_Console_ChangeColor($ZeigerConsole,BitOR($DefaultBackground,$FG_BLUE))
ConsoleWrite(_ANSI2OEM("Dieser Text ist BLAU!" & @CRLF))
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite(@CRLF)
ConsoleWrite(_ANSI2OEM("Beispiel 2 : Roter Text mit gelben Hintergrund" & @CRLF))
ConsoleWrite(_ANSI2OEM("Aufruf : ColorEcho YELLOW BLUE Dieser Text ist ROT auf GELB!" & @CRLF))
ConsoleWrite(_ANSI2OEM("Ergebnis : "))
_Console_ChangeColor($ZeigerConsole,BitOR($BG_YELLOW,$FG_RED))
ConsoleWrite(_ANSI2OEM("Dieser Text ist ROT auf GELB!"))
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite(@CRLF)
ConsoleWrite(@CRLF)
ConsoleWrite(_ANSI2OEM("Beispiel 3 : Nur ein Wort einf<6E>rben (3 Befehlszeilen, vorher 'echo off')" & @CRLF))
ConsoleWrite(_ANSI2OEM('Aufruf : @echo off' & @CRLF))
ConsoleWrite(_ANSI2OEM(" ColorEcho /NoCRLF LIGHTGREEN Dieser hellgr<67>ne Text hat ein" & @CRLF))
ConsoleWrite(_ANSI2OEM(' ColorEcho /NoCRLF PINK PINKES ' & @CRLF))
ConsoleWrite(_ANSI2OEM(" ColorEcho LIGHTGREEN Wort in der Mitte!" & @CRLF))
ConsoleWrite(_ANSI2OEM("Ergebnis : "))
_Console_ChangeColor($ZeigerConsole,BitOR($DefaultBackground,$FG_LIGHTGREEN))
ConsoleWrite(_ANSI2OEM("Dieser gr<67>ne Text hat ein"))
_Console_ChangeColor($ZeigerConsole,BitOR($DefaultBackground,$FG_PINK))
ConsoleWrite(_ANSI2OEM(" PINKES "))
_Console_ChangeColor($ZeigerConsole,BitOR($DefaultBackground,$FG_LIGHTGREEN))
ConsoleWrite(_ANSI2OEM("Wort in der Mitte!" & @CRLF))
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite(@CRLF)
ConsoleWrite(_ANSI2OEM("Beispiel 4 : Nur ein Wort einf<6E>rben 2 (3 Befehlszeilen, vorher '@echo off')" & @CRLF))
ConsoleWrite(_ANSI2OEM('Aufruf : @echo off' & @CRLF))
ConsoleWrite(_ANSI2OEM(' ColorEcho /NoCRLF LIGHTBLUE "Dieser hellblaue Text hat ein "' & @CRLF))
ConsoleWrite(_ANSI2OEM(' ColorEcho /NoCRLF WHITE PINK PINKES ' & @CRLF))
ConsoleWrite(_ANSI2OEM(' ColorEcho LIGHTBLUE " Wort in der Mitte!"' & @CRLF))
ConsoleWrite(_ANSI2OEM("Ergebnis : "))
_Console_ChangeColor($ZeigerConsole,BitOR($DefaultBackground,$FG_LIGHTBLUE))
ConsoleWrite(_ANSI2OEM("Dieser hellblaue Text hat ein "))
_Console_ChangeColor($ZeigerConsole,BitOR($BG_WHITE,$FG_PINK))
ConsoleWrite(_ANSI2OEM(" PINKES "))
_Console_ChangeColor($ZeigerConsole,BitOR($DefaultBackground,$FG_LIGHTBLUE))
ConsoleWrite(_ANSI2OEM(" Wort in der Mitte!" & @CRLF))
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite(@CRLF)
ConsoleWrite(_ANSI2OEM("Beispiel 5 : Blau / Weiss f<>r nachfolgende Befehle" & @CRLF))
ConsoleWrite(_ANSI2OEM("Aufruf : ColorEcho /change DARKBLUE WHITE" & @CRLF))
ConsoleWrite(_ANSI2OEM("Ergebnis : "))
_Console_ChangeColor($ZeigerConsole,BitOR($BG_DARKBLUE,$FG_WHITE))
ConsoleWrite(_ANSI2OEM("Alle Befehle wie z.B. echo oder dir erscheinen in" & @CRLF))
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite(_ANSI2OEM(" "))
_Console_ChangeColor($ZeigerConsole,BitOR($BG_DARKBLUE,$FG_WHITE))
ConsoleWrite("dieser Farbe bis 'ColorEcho /reset' aufgerufen wird.")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite(@CRLF)
ConsoleWrite(@CRLF)
ConsoleWrite(_ANSI2OEM('Hinweis 1 : Leerzeichen werden mit <20>bergeben, es sind keine " " n<>tig' & @CRLF))
ConsoleWrite(_ANSI2OEM('Hinweis 2 : /NoCRLF funktioniert nur in Batch-Dateien richtig' & @CRLF))
ConsoleWrite(@CRLF)
;ConsoleWrite("$DefaultWerte:" & $DefaultWerte & " " & Hex($DefaultWerte) & @CRLF)
;ConsoleWrite("$DefaultBackground:" & $DefaultBackground & " " & Hex($DefaultBackground) & @CRLF)
; Farbtabelle
; 10 20 30 40 50 60 70 80
; 12345678901234567890123456789012345678901234567890123456789012345678901234567890
ConsoleWrite(_ANSI2OEM("Farbtabelle:" & @CRLF))
ConsoleWrite(_ANSI2OEM("-------------------------------------------------------------------------------" & @CRLF))
ConsoleWrite(@CRLF)
; ConsoleWrite(" 1 2 3 4 5 6 7 8" & @CRLF)
; ConsoleWrite("12345678901234567890123456789012345678901234567890123456789012345678901234567890" & @CRLF)
ConsoleWrite(" BLACK [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_BLACK,$FG_BLACK))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("] BLUE [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_BLUE,$FG_BLUE))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("]" & @CRLF)
ConsoleWrite(" BROWN [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_BROWN,$FG_BROWN))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("] DARKBLUE [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_DARKBLUE,$FG_DARKBLUE))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("]" & @CRLF)
ConsoleWrite(" DARKGREY [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_DARKGREY,$FG_DARKGREY))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("] GREEN [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_GREEN,$FG_GREEN))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("]" & @CRLF)
ConsoleWrite(" GREY [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_GREY,$FG_GREY))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("] LIGHTBLUE [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_LIGHTBLUE,$FG_LIGHTBLUE))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("]" & @CRLF)
ConsoleWrite(" LIGHTGREEN [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_LIGHTGREEN,$FG_LIGHTGREEN))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("] PINK [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_PINK,$FG_PINK))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("]" & @CRLF)
ConsoleWrite(" RED [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_RED,$FG_RED))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("] ROSE [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_ROSE,$FG_ROSE))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("]" & @CRLF)
ConsoleWrite(" TURQUOISE [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_TURQUOISE,$FG_TURQUOISE))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("] VIOLET [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_VIOLET,$FG_VIOLET))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("]" & @CRLF)
ConsoleWrite(" WHITE [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_WHITE,$FG_WHITE))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("] YELLOW [")
_Console_ChangeColor($ZeigerConsole,BitOR($BG_YELLOW,$FG_YELLOW))
ConsoleWrite(" ")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
ConsoleWrite("]" & @CRLF)
ConsoleWrite(@CRLF)
ConsoleWrite(_ANSI2OEM($Disclaimer))
EndFunc ;==>_HilfeAusgeben
; ###################################################################################
; Hilfsroutine die die Farben findet
Func _FindColors($a,$b)
;1. Parameter testen - sollte immer eine Farbe sein
$ZeigerCmdLine = $a
If $CmdLine[0] >= $a Then
Select
Case $CmdLine[$a] = "BLACK"
$NewBackground = $BG_BLACK
Case $CmdLine[$a] = "BLUE"
$NewBackground = $BG_BLUE
Case $CmdLine[$a] = "BROWN"
$NewBackground = $BG_BROWN
Case $CmdLine[$a] = "DARKBLUE"
$NewBackground = $BG_DARKBLUE
Case $CmdLine[$a] = "DARKGREY"
$NewBackground = $BG_DARKGREY
Case $CmdLine[$a] = "GREEN"
$NewBackground = $BG_GREEN
Case $CmdLine[$a] = "GREY"
$NewBackground = $BG_GREY
Case $CmdLine[$a] = "LIGHTBLUE"
$NewBackground = $BG_LIGHTBLUE
Case $CmdLine[$a] = "LIGHTGREEN"
$NewBackground = $BG_LIGHTGREEN
Case $CmdLine[$a] = "PINK"
$NewBackground = $BG_PINK
Case $CmdLine[$a] = "RED"
$NewBackground = $BG_RED
Case $CmdLine[$a] = "ROSE"
$NewBackground = $BG_ROSE
Case $CmdLine[$a] = "TURQUOISE"
$NewBackground = $BG_TURQUOISE
Case $CmdLine[$a] = "VIOLET"
$NewBackground = $BG_VIOLET
Case $CmdLine[$a] = "WHITE"
$NewBackground = $BG_WHITE
Case $CmdLine[$a] = "YELLOW"
$NewBackground = $BG_YELLOW
Case Else
ConsoleWrite(_ANSI2OEM("Unbekannte Farbe: " & $CmdLine[$a]) & @CRLF)
Exit
EndSelect
Else
$NewBackground = $DefaultBackground
$NewForeground = $DefaultForeground
$ZeigerCmdLine = $a - 1
EndIf
If $CmdLine[0] >= $b Then
Select
Case $CmdLine[$b] = "BLACK"
$NewForeground = $FG_BLACK
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "BLUE"
$NewForeground = $FG_BLUE
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "BROWN"
$NewForeground = $FG_BROWN
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "DARKBLUE"
$NewForeground = $FG_DARKBLUE
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "DARKGREY"
$NewForeground = $FG_DARKGREY
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "GREEN"
$NewForeground = $FG_GREEN
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "GREY"
$NewForeground = $FG_GREY
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "LIGHTBLUE"
$NewForeground = $FG_LIGHTBLUE
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "LIGHTGREEN"
$NewForeground = $FG_LIGHTGREEN
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "PINK"
$NewForeground = $FG_PINK
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "RED"
$NewForeground = $FG_RED
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "ROSE"
$NewForeground = $FG_ROSE
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "TURQUOISE"
$NewForeground = $FG_TURQUOISE
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "VIOLET"
$NewForeground = $FG_VIOLET
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "WHITE"
$NewForeground = $FG_WHITE
$ZeigerCmdLine = $b + 1
Case $CmdLine[$b] = "YELLOW"
$NewForeground = $FG_YELLOW
$ZeigerCmdLine = $b + 1
Case Else
$NewForeground = Int("0x0000000" & StringMid(Hex($NewBackground),7,1))
$NewBackground = $DefaultBackground
$ZeigerCmdLine = $b
;ConsoleWrite("Hier2" & @CRLF)
;ConsoleWrite("$NewBackground:" & Hex($NewBackground) & @CRLF)
;ConsoleWrite("$NewForeground:" & Hex($NewForeground) & @CRLF)
EndSelect
Else
$NewForeground = Int("0x0000000" & StringMid(Hex($NewBackground),7,1))
$NewBackground = $DefaultBackground
$ZeigerCmdLine = $b
;ConsoleWrite("Hier1" & @CRLF)
EndIf
EndFunc
; ###################################################################################
; Hilfsroutine die den Text des Benutzers ausgibt
Func _EchoText($crlfYesOrNo)
Dim $LineTextBegin
Dim $LineText
For $i = 1 to ($ZeigerCmdLine - 1)
$LineTextBegin = $LineTextBegin & $CmdLine[$i] & " "
Next
$LineText = StringMid($CmdLineRaw,StringLen($LineTextBegin) + 1)
;~ For $i = $ZeigerCmdLine To $CmdLine[0]
;~ $LineText = $LineText & $CmdLine[$i] & " "
;~ Next
;~ If StringRight($LineText,1) = " " Then
;~ $LineText = StringMid($LineText,1,StringLen($LineText) - 1)
;~ EndIf
ConsoleWrite(_ANSI2OEM($LineText))
If $crlfYesOrNo = "Yes" Then
ConsoleWrite(@CRLF)
EndIf
EndFunc
; ######################################################################################################################################################################
; ######################################################################################################################################################################
; ######################################################################################################################################################################
; H A U P T P R O G R A M M
; ######################################################################################################################################################################
; ######################################################################################################################################################################
; ######################################################################################################################################################################
_WinAPI_AttachConsole()
$ZeigerConsole = _WinAPI_GetStdHandle(1)
$ZeigerCmdLine = 1
; ###################################################################################
; H I L F E
; ###################################################################################
;testen ob wir <20>berhaupt mit einem Parameter gestartet wurden - sonst Hilfe ausgeben
If $CmdLine[0] = 0 Then
_HilfeAusgeben()
Exit
EndIf
;testen ob der Parameter 1 ist auf "/?" testen und ebenfalls Hilfe ausgeben
If $CmdLine[1] = "/?" Then
_HilfeAusgeben()
Exit
EndIf
; ###################################################################################
; R E S E T
; ###################################################################################
If $CmdLine[1] = "/reset" Then
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
Exit
EndIf
; ###################################################################################
; C H A N G E
; ###################################################################################
If $CmdLine[1] = "/change" Then
_FindColors(2,3)
_Console_ChangeColor($ZeigerConsole,BitOR($NewBackground,$NewForeground))
Exit
EndIf
; ###################################################################################
; N O C R L F
; ###################################################################################
If $CmdLine[1] = "/NoCRLF" Then
_FindColors(2,3)
_Console_ChangeColor($ZeigerConsole,BitOR($NewBackground,$NewForeground))
_EchoText("No")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
Exit
EndIf
; ###################################################################################
; NICHTS VORHER PASSTE
; ###################################################################################
_FindColors(1,2)
_Console_ChangeColor($ZeigerConsole,BitOR($NewBackground,$NewForeground))
_EchoText("Yes")
_Console_ChangeColor($ZeigerConsole,$DefaultWerte)
Exit