[UDF] Konsolen UDF

01/31/2010 11:29 SCORNI#1
Ich habe mal eine kleine UDF geschrieben.
Es ist nicht viel und eine arbeit von 10 min aber
ich werde noch readline usw einbauen.

PHP Code:
;===============================================================================
;
; Function 
Name:   _ConsoleCreate ($Title)
Description::    Erstellt eine Konsole mit schwarzem Hintergrund und weißer Schriftfarbe
Parameter(s):     $Title Titel des Fensters der Konsole
;                  Ohne Titelangabe wird "Konsolen UDF by ScOrNi" verwendet   
Author(s):      ScOrNi
;
Information about $Title:
;~                          
Nur von A-Za-z0-9, *+~'#!"§$%&/()=?²³{[]}\´`^/*+-:,\,<>
;   Examples: 
;~                   _ConsoleCreate ("Dies ist ein Konsole + weißer Hintergrund²")
;~                   _ConsoleCreate ()
;
;===============================================================================

func _ConsoleCreate ($Title="Konsolen UDF by ScOrNi")
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>

#Region ### START Koda GUI section ### Form=
$Console1 = GUICreate($Title, 655, 295, 220, 180)
GUISetBkColor(0x000000)
global $edit=GUICtrlCreateEdit("", 0, 0, 657, 297, BitOR($ES_AUTOVSCROLL,$WS_VSCROLL))
GUICtrlSetBkColor($edit, 0x000000)
GUICtrlSetColor ($edit,0xffffff)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

endfunc
;===============================================================================
;
; Function Name:   _ConsoleWait ($Time)
; Description::    Lässt die Konsole so lange wie angegeben warten bis sie geschlossen wird
;                   Nachdem die Zeit abgelaufen ist schließt sie sich selber. Wenn nix angegeben
;                  wird, wartet die Konsole unendlich lang.
; Parameter(s):     $Time = Die Zeit die gewartet werden soll in Millisekunden.
;                  Ohne Angaabe wird unendlich lange gewartet.  
; Author(s):      ScOrNi
;
; Information about $Time:
;~                          Zeit bitte in Millisekunden angeben. (1000ms = 1s)
;   Examples: 
;~                   _ConsoleWait(2000)
;~                   _ConsoleWait ()
;
;===============================================================================
func _ConsoleWait($Time=9999999999999999)
    $start = TimerInit()
    Do
        $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
        until timerdiff ($start) >=$Time
EndFunc
;===============================================================================
;
; Function Name:   _ConsoleWriteLine ($Text)
; Description::    Gibt $Text als Text in der Konsole aus.
; Parameter(s):     $Text = Der Text der ausgegeben werden soll.  
; Author(s):      ScOrNi
;
; Information about $Text:
;~                          Hier dürfen alle Zeichen benutzt werden vorausgesetzt
;~                          die Sprache ist auf dem PC Installiert
;   Examples: 
;~                   _ConsoleWriteLine("Ich bin der Text")
;
;===============================================================================
func _ConsoleWriteLine($Text)
    guictrlsetdata ($edit,guictrlread($edit)&$Text)
EndFunc
;===============================================================================
;
; Function Name:   _ConsoleEndline ()
; Description::    Beendet die Zeile und fängt eine neue an. (Zeilenumbruch)
; Parameter(s):    Keine Parameter
; Author(s):      ScOrNi
;
;   Examples: 
;~                   _ConsoleWriteLine("Zeile 1")
;~                   _ConsoleEndline ()
;                    _ConsoleWriteLine("Zeile 2")
;===============================================================================
func _ConsoleEndline()
guictrlsetdata ($edit,guictrlread ($edit)&@crlf)
endfunc

func _ConsoleFontColor ($Color)
GUICtrlSetColor ($edit,$Color)
EndFunc 
01/31/2010 17:44 Shadow992#2
Quote:
Originally Posted by SCORNI View Post
Ich habe mal eine kleine UDF geschrieben.
Es ist nicht viel und eine arbeit von 10 min aber
ich werde noch readline usw einbauen.

PHP Code:
;===============================================================================
;
; Function 
Name:   _ConsoleCreate ($Title)
Description::    Erstellt eine Konsole mit schwarzem Hintergrund und weißer Schriftfarbe
Parameter(s):     $Title Titel des Fensters der Konsole
;                  Ohne Titelangabe wird "Konsolen UDF by ScOrNi" verwendet   
Author(s):      ScOrNi
;
Information about $Title:
;~                          
Nur von A-Za-z0-9, *+~'#!"§$%&/()=?²³{[]}\´`^/*+-:,\,<>
;   Examples: 
;~                   _ConsoleCreate ("Dies ist ein Konsole + weißer Hintergrund²")
;~                   _ConsoleCreate ()
;
;===============================================================================

func _ConsoleCreate ($Title="Konsolen UDF by ScOrNi")
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>

#Region ### START Koda GUI section ### Form=
$Console1 = GUICreate($Title, 655, 295, 220, 180)
GUISetBkColor(0x000000)
global $edit=GUICtrlCreateEdit("", 0, 0, 657, 297, BitOR($ES_AUTOVSCROLL,$WS_VSCROLL))
GUICtrlSetBkColor($edit, 0x000000)
GUICtrlSetColor ($edit,0xffffff)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

endfunc
;===============================================================================
;
; Function Name:   _ConsoleWait ($Time)
; Description::    Lässt die Konsole so lange wie angegeben warten bis sie geschlossen wird
;                   Nachdem die Zeit abgelaufen ist schließt sie sich selber. Wenn nix angegeben
;                  wird, wartet die Konsole unendlich lang.
; Parameter(s):     $Time = Die Zeit die gewartet werden soll in Millisekunden.
;                  Ohne Angaabe wird unendlich lange gewartet.  
; Author(s):      ScOrNi
;
; Information about $Time:
;~                          Zeit bitte in Millisekunden angeben. (1000ms = 1s)
;   Examples: 
;~                   _ConsoleWait(2000)
;~                   _ConsoleWait ()
;
;===============================================================================
func _ConsoleWait($Time=9999999999999999)
    $start = TimerInit()
    Do
        $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
        until timerdiff ($start) >=$Time
EndFunc
;===============================================================================
;
; Function Name:   _ConsoleWriteLine ($Text)
; Description::    Gibt $Text als Text in der Konsole aus.
; Parameter(s):     $Text = Der Text der ausgegeben werden soll.  
; Author(s):      ScOrNi
;
; Information about $Text:
;~                          Hier dürfen alle Zeichen benutzt werden vorausgesetzt
;~                          die Sprache ist auf dem PC Installiert
;   Examples: 
;~                   _ConsoleWriteLine("Ich bin der Text")
;
;===============================================================================
func _ConsoleWriteLine($Text)
    guictrlsetdata ($edit,guictrlread($edit)&$Text)
EndFunc
;===============================================================================
;
; Function Name:   _ConsoleEndline ()
; Description::    Beendet die Zeile und fängt eine neue an. (Zeilenumbruch)
; Parameter(s):    Keine Parameter
; Author(s):      ScOrNi
;
;   Examples: 
;~                   _ConsoleWriteLine("Zeile 1")
;~                   _ConsoleEndline ()
;                    _ConsoleWriteLine("Zeile 2")
;===============================================================================
func _ConsoleEndline()
guictrlsetdata ($edit,guictrlread ($edit)&@crlf)
endfunc

func _ConsoleFontColor ($Color)
GUICtrlSetColor ($edit,$Color)
EndFunc 
Total überflüssig , vorallem weil es keine richtige Konsole ist .
Als ich den Namen dieses Threads gelesen habe dachte ich , dass man mit AutoIT jetzt auch endlich ohne großen Probleme/Umwege mit der DOS Konsole arbeiten kann , dem ist aber wie mir scheint nicht so ...

Das ist die wohl sinnloseste UDF , die ich jemals gesehen habe .
Für Soetwas braucht man keine UDF , AutoIT macht es einen doch schon leicht genug ...

Auserdem , wie du selbst schon sagtest hast du dafür 10 min gebraucht (10min ? Ist ein wenig lang wenn man die UDF so anschaut) , also sollte jeder in der Lage sein sich das selbst schnell zu schreiben (bzw Koda macht ja alles für einen) .

Das ist meine Meinung zur UDF ... Es ist nur eine Meinung , also bitte nicht böse sein .
01/31/2010 18:28 | Moep |#3
Da muß ich shadow recht geben, mit einer eingabeauforderung hat das wenig zu tun.
Jedoch könnte man es, mit ein parr veränderungen, gut zum debuggen hernehmen. Auch wenns jetzt schon von Haus aus so einige Debug funktionen bei Autoit gibt, richtig gefallen tut mir da keine von ;)
02/01/2010 07:59 SCORNI#4
Quote:
Originally Posted by Shadow992 View Post
Total überflüssig , vorallem weil es keine richtige Konsole ist .
Als ich den Namen dieses Threads gelesen habe dachte ich , dass man mit AutoIT jetzt auch endlich ohne großen Probleme/Umwege mit der DOS Konsole arbeiten kann , dem ist aber wie mir scheint nicht so ...

Das ist die wohl sinnloseste UDF , die ich jemals gesehen habe .
Für Soetwas braucht man keine UDF , AutoIT macht es einen doch schon leicht genug ...

Auserdem , wie du selbst schon sagtest hast du dafür 10 min gebraucht (10min ? Ist ein wenig lang wenn man die UDF so anschaut) , also sollte jeder in der Lage sein sich das selbst schnell zu schreiben (bzw Koda macht ja alles für einen) .

Das ist meine Meinung zur UDF ... Es ist nur eine Meinung , also bitte nicht böse sein .
1. Die Beschreibungen zu schreiben hat länger gedauert als die funktionen
2. Ich bin dir jetzt Total böse zur hölle mit dir
02/01/2010 17:05 Shadow992#5
Quote:
Originally Posted by SCORNI View Post
1. Die Beschreibungen zu schreiben hat länger gedauert als die funktionen
Das glaube ich dir , war ja nett/gut gemeint , aber ist halt unnütz ...

Quote:
Originally Posted by SCORNI View Post
2. Ich bin dir jetzt Total böse zur hölle mit dir
Och Schade ... (Naja was solls XD)
02/01/2010 22:25 kknb#6
bin gespannt wie du das mit dem readline lösen möchtest!
02/01/2010 22:30 | Moep |#7
Projekt wurde vorerst eingestellt. Closed Beta frühestesten Ende des Jahres...
02/02/2010 16:59 SCORNI#8
Quote:
Originally Posted by kknb View Post
bin gespannt wie du das mit dem readline lösen möchtest!
1. $1=Stringlen (editbox)
2. do until ispressed enter
3. $2=stringlen (editbox)
4. $3=guictrlread (editbox)
5. $4=stringright ($3,$2-$1)
5. return $4

logisch oder ?
02/02/2010 22:46 kknb#9
eh nein nicht logisch, aber hab ich auch net von dir erwartet.