Console Hilfe

  • hey wollt mir mal ne eigene Console schreiben und hab ein kleines Problem...

    ich hab das ganze mit einem Edit Control gelöst, aber möchte dass man den text der vom skript geschrieben wird nicht ändern kann aber den text wo man selber schreibt schon .. so in etwa wie in der richtigen cmd.exe .. habe jetzt aber keine lust das alles mit _isPressed() zu machen - das ist zu aufwändig .. kennt jemand ne lösung?

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiEdit.au3>
    #include <Debug.au3>
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Console", 500, 300, 192, 124, BitOR($WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_OVERLAPPEDWINDOW, $WS_TILEDWINDOW, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_TABSTOP, $WS_BORDER, $WS_CLIPSIBLINGS))
    $Edit1 = GUICtrlCreateEdit("", 0, 0, 500, 300, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN), 0)
    $hEdit1 = GUICtrlGetHandle($Edit1)
    GUICtrlSetFont(-1, 8, 400, 0, "Courier")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetBkColor(-1, 0x000000)
    GUISetState()
    GUISetState(@SW_MAXIMIZE, $Form1)

    [/autoit] [autoit][/autoit] [autoit]

    _ConsoleWrite("Copyright (c) 2010 Marcel Böhm. Alle Rechte vorbehalten.", 1)
    _ConsoleWrite(_DebugBugReportEnv(), 1)
    _ConsoleWrite("User: " & @UserName, 1)
    If IsAdmin() = 1 Then
    _ConsoleWrite("Admin: Ja", 1)
    Else
    _ConsoleWrite("Admin: Nein", 1)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _ConsoleWrite("-> ", 0)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    If _IsPressed("0D") Then
    MsgBox(0, "", _GUICtrlEdit_GetLine($hEdit1, _GUICtrlEdit_GetLineCount($hEdit1) - 2))
    _ConsoleWrite("-> ", 0)
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _ConsoleWrite($String, $Flag)
    If $Flag = 1 Then
    _GUICtrlEdit_AppendText($hEdit1, $String & @CRLF)
    ElseIf $Flag = 0 Then
    _GUICtrlEdit_AppendText($hEdit1, $String)
    EndIf
    EndFunc ;==>_ConsoleWrite

    [/autoit]
  • Wenn ich mich richtig erinnerere kann man doch auch überprüfen in welcher Zeile der Cursor ist.
    Damit sollte es auch möglich sein.

    mfg Ubuntu

  • hm ja so könnte man das machen .. ich habs jetzt einfach mit ner inputbox gemacht^^ - ist des leichteste