eigene CMD Console...

  • Hi Leute,

    ich hab mal angefangen mir meine eigene Konsole zu schreiben. Sie ist noch lange nicht fertig. Beinhaltet aber schon ein paar kleine Funktionen.
    Würde mich über Ideen für weitere Funktionen freuen.
    Die Hilfe wollte ich über SQLite organisieren(.dll-Datei). Folgt aber erst später.
    Wer Lust hat, kann auch schon selber Funktionen schreiben und ich nehm sie dann ggf. in mein Programm auf.

    Kritik, positiv wie negativ, ist erwünscht.
    Verbesserungsvorschläge zu einzelnen Funktionen ebenso.

    Danke im Vorraus

    Der Code:
    Main-Programm

    Spoiler anzeigen
    [autoit]


    ;
    ; AutoIt Version: 3.0
    ; Language: German
    ;
    ; Script Function:
    ; Console
    ; NeuAuflage
    ;

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

    #region Include
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <GuiEdit.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>

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

    #endregion Include

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

    #region Head
    Opt('GUIOnEventMode', 1)
    #NoTrayIcon

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

    _SQLite_Startup()
    If @error > 0 Then
    MsgBox(16, "SQLite Fehler", "SQLite.dll konnte nicht geladen werden!")
    Exit -1
    EndIf
    #endregion Head

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

    #region Variablen
    Global $sTitel = @WorkingDir
    Global $DllPfad = @ScriptDir & '/h.dll'
    #endregion Variablen

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

    #region StartUp
    _Main()
    WinSetTitle('Console', '', $sTitel)
    While 1
    Sleep(100)
    WEnd
    #endregion StartUp

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

    #region GUICreate
    Func _Main()
    #Region ### START Koda GUI section ### Form=C:\Users\Max\Desktop\Alle_Ordner\Programme\Autoit\Console\Gui\Main.kxf
    Global $Main = GUICreate('Console', 434, 198, 296, 125, BitOR($WS_CAPTION, $WS_POPUP, $WS_BORDER), 0)
    GUISetOnEvent($GUI_EVENT_CLOSE, 'MainClose')
    Global $InCmd = GUICtrlCreateInput('', 0, 176, 433, 21, 0, 0)
    GUICtrlSetFont(-1, 9, 400, 0, 'MS Sans Serif')
    GUICtrlSetResizing(-1, $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    GUICtrlSetOnEvent(-1, 'InCmdChange')
    Global $ECon = GUICtrlCreateEdit('', 0, 0, 433, 177, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $WS_VSCROLL), 0)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ConsoleWrite('Main:' & $Main & @CRLF)
    ConsoleWrite('InCmd:' & $InCmd & @CRLF)
    ConsoleWrite('ECon:' & $ECon & @CRLF)
    EndFunc ;==>_Main

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

    #endregion GUICreate

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

    #region Funktionen
    Func InCmdChange()
    $sAnswer = GUICtrlRead($InCmd)
    GUICtrlSetData($InCmd, '')
    $cmd = Stringsplit($sAnswer, ' ')

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

    _ConsoleWrite(_ArrayToString($cmd, ' ', 1))

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

    Switch $cmd[1]
    Case 'exit', 'close'
    _Close()

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

    Case 'print'
    If $cmd[0] <> 1 Then
    _Variable($sAnswer)
    ;_Print(_ArrayToString($cmd, ' ', 2) & @CRLF)
    EndIf

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

    Case 'clear', 'cls'
    _Clear(_ArrayToString($cmd, ' ', 2))

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

    Case 'help'
    If $cmd[0] = 1 Then
    _Help()
    Else
    _Print('Diese Parameter sind nicht zulässig.' & @CRLF)
    EndIf

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

    Case 'dir'
    _SetCurrentDir(_ArrayToString($cmd, ' '))

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

    Case 'exe'
    _Execute(_ArrayToString($cmd, ' ', 2))

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

    Case 'FileNew'
    _NewFile(_ArrayToString($cmd, ' ', 2))

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

    Case 'FileDel'
    _DelFile(_ArrayToString($cmd, ' ', 2))

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

    Case 'FileExist'
    _ExistFile(_ArrayToString($cmd, ' ', 2))

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

    Case 'FileMove'
    _MoveFile(_ArrayToString($cmd, ' ', 2))

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

    Case 'Explorer'
    _Explorer(_ArrayToString($cmd, ' ', 2))

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

    Case Else
    _Print('Die Funktion: "' & $cmd[1] & '" existiert nicht.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)

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

    EndSwitch

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

    EndFunc ;==>InCmdChange

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

    Func _Explorer($sParam)
    $sCmd = StringSplit($sParam, ' ')
    If $sCmd[0] <> 1 Then
    _Print('Der übergebene Parameter ' & $sParam & ' kann nicht ausgeführt werden.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    Else
    If $sCmd[1] = '/?' Then
    _Help(1, 'explorer')
    Else
    If FileExists($sCmd[1]) Then
    RunWait(@ComSpec & ' /c explorer ' & $sCmd[1], $sCmd[1], @SW_HIDE)
    Else
    _Print('Der angegeben Pfad existiert nicht. Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    EndIf
    EndIf
    EndIf
    EndFunc ;==>_Explorer

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

    Func _MoveFile($sParam) ; ==> %Quelle% %Ziel% %flag = 9%
    ;0 = Überschreibt bestehende Dateien nicht
    ;1 = Überschreibt bestehende Dateien
    ;8 = Erstellt die Verzeichnisstruktur, falls diese nicht existiert

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

    $sCmd = StringSplit($sParam, ' ')
    Switch $sCmd[0]
    Case 1
    If $sCmd[1] = '/?' Then
    _Help(1, 'MoveFile')
    Else
    _Print('Die übergebenen Parameter ' & $sParam & ' können nicht ausgeführt werden.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    EndIf

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

    Case 2
    If FileExists($sCmd[1]) Then
    If FileMove($sCmd[1], $sCmd[2], 9) Then
    _Print('Die Datei: "' & $sCmd[1] & '" wurde erfolgreich nach: "' & $sCmd[2] & '" verschoben.' & @CRLF)
    Else
    _Print('Die Datei: "' & $sCmd[1] & '" kann nicht verschoben werden. Bitte überprüfen Sie die Pfade.' & @CRLF)
    EndIf
    Else
    _Print('Die Datei: "' & $sCmd[1] & '" kann nicht verschoben werden. Bitte überprüfen Sie die Pfade.' & @CRLF)
    EndIf

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

    Case 3
    If FileExists($sCmd[1]) Then
    Switch $sCmd[3]
    Case 0
    If FileMove($sCmd[1], $sCmd[2], $sCmd[3]) Then
    _Print('Die Datei: "' & $sCmd[1] & '" wurde erfolgreich nach: "' & $sCmd[2] & '" verschoben.' & @CRLF)
    Else
    _Print('Die Datei: "' & $sCmd[1] & '" kann nicht verschoben werden. Bitte überprüfen Sie die Pfade.' & @CRLF)
    EndIf
    Case 1
    If FileMove($sCmd[1], $sCmd[2], $sCmd[3]) Then
    _Print('Die Datei: "' & $sCmd[1] & '" wurde erfolgreich nach: "' & $sCmd[2] & '" verschoben.' & @CRLF)
    Else
    _Print('Die Datei: "' & $sCmd[1] & '" kann nicht verschoben werden. Bitte überprüfen Sie die Pfade.' & @CRLF)
    EndIf
    Case 8
    If FileMove($sCmd[1], $sCmd[2], $sCmd[3]) Then
    _Print('Die Datei: "' & $sCmd[1] & '" wurde erfolgreich nach: "' & $sCmd[2] & '" verschoben.' & @CRLF)
    Else
    _Print('Die Datei: "' & $sCmd[1] & '" kann nicht verschoben werden. Bitte überprüfen Sie die Pfade.' & @CRLF)
    EndIf
    Case 9
    _MoveFile($sCmd[1] & ' ' & $sCmd[2])
    Case Else
    _Print('Die übergebenen Parameter ' & $sParam & ' können nicht ausgeführt werden.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    EndSwitch
    Else
    _Print('Die Datei: "' & $sCmd[1] & '" kann nicht verschoben werden. Bitte überprüfen Sie die Pfade.' & @CRLF)
    EndIf

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

    Case Else
    _Print('Die übergebenen Parameter ' & $sParam & ' können nicht ausgeführt werden.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    EndSwitch
    EndFunc ;==>_MoveFile

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

    Func _ExistFile($sParam) ; ==> %Quelle%
    $sCmd = StringSplit($sParam, ' ')
    If $sCmd[0] <> 1 Then
    _Print('Der übergebene Parameter ' & $sParam & ' kann nicht ausgeführt werden.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    Else
    If $sCmd[1] = '/?' Then
    _Help(1, 'ExistFile')
    Else
    If FileExists($sCmd[1]) Then
    _Print('Die Datei: "' & $sCmd[1] & '" existiert.' & @CRLF)
    Else
    _Print('Die Datei: "' & $sCmd[1] & '" existiert nicht.' & @CRLF)
    EndIf
    EndIf
    EndIf
    EndFunc ;==>_ExistFile

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

    Func _DelFile($sParam) ; ==> %Quelle%
    $sCmd = StringSplit($sParam, ' ')
    If $sCmd[0] <> 1 Then
    _Print('Der übergebene Parameter ' & $sParam & ' kann nicht ausgeführt werden.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    Else
    If Not FileDelete($sCmd[1]) Then
    _Print('Es gab einen Fehler beim löschen der Datei.' & @CRLF & 'Bitte überprüfen Sie den Pfad.' & @CRLF)
    Else
    If $sCmd[1] = '/?' Then
    _Help(1, 'DelFile')
    Else
    If Not FileExists($sCmd[1]) Then
    _Print('Die Datei: "' & $sCmd[1] & '" wurde erfolgreich gelöscht.' & @CRLF)
    Else
    _Print('Es wurde ein unerwarter Fehler festgestellt. Bitte starten Sie das Programm neu.' & @CRLF)
    EndIf
    EndIf
    EndIf
    EndIf
    EndFunc ;==>_DelFile

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

    Func _NewFile($sParam) ; ==> %Quelle%
    $sCmd = StringSplit($sParam, ' ')
    If $sCmd[0] <> 1 Then
    _Print('Der übergebene Parameter ' & $sParam & ' kann nicht ausgeführt werden.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    Else
    If $sCmd[1] = '/?' Then
    _Help(1, 'NewFile')
    Else
    _FileCreate($sCmd[1])
    Switch @error
    Case 1
    _Print('Es gab einen Fehler beim erstellen der Datei.' & @CRLF & 'Bitte überprüfen Sie den Pfad.' & @CRLF)
    Case 2
    _Print('Es gab einen Fehler beim erstellen der Datei.' & @CRLF & 'Bitte überprüfen Sie den Pfad.' & @CRLF)
    Case Else
    _Print('Die Datei: "' & $sCmd[1] & '" wurde erfolgreich erstellt.' & @CRLF)
    EndSwitch
    EndIf
    EndIf
    EndFunc ;==>_NewFile

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

    Func _SetCurrentDir($aCmd) ; ==> %Quelle%
    $aCmd = StringSplit($aCmd, ' ', 2)
    Switch $aCmd[0]
    Case 1
    _Print('Aktuelles Arbeitsverzeichnis:' & @CRLF & @WorkingDir & @CRLF)

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

    Case 2
    If $aCmd[2] = 'cd' Then _Print('Bitte geben Sie in das zu wechselnde Verzeichnis an.' & @CRLF)
    If $sCmd[1] = '/?' Then
    _Help(1, 'SetDir')
    EndIf
    Case 3
    If Not FileExists($aCmd[3]) Then
    _Print('Der angegebene Pfad konnte nicht gefunden werden.' & @CRLF)
    Else
    $t = FileChangeDir($aCmd[3])
    If $t = 0 Then
    _Print('Das Verzeichnis konnte nicht geändert werden.' & @CRLF)
    Else
    _Print('Das Arbeitsverzeichnis wurde geändert.' & @CRLF & 'Aktuelles Arbeitsverzeichnis:' & @CRLF & @WorkingDir & @CRLF)
    WinSetTitle($sTitel, '', $aCmd[3])
    $sTitel = $aCmd[3]
    EndIf
    EndIf

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

    Case Else
    _Print('Die Anzahl an Parameter ist unzulässig.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)

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

    EndSwitch
    EndFunc ;==>_SetCurrentDir

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

    Func _Execute($sParam) ; ==> %AutoIt Command%
    $aCmd = StringSplit($sParam, ' ')
    If $aCmd[0] = 1 Then
    If $sCmd[1] = '/?' Then
    _Help(1, 'eExistFile')
    Else
    $Test = Execute($sParam)
    If @error <> 0 Then
    _Print('Der übergebene Parameter ' & $sParam & ' kann nicht ausgeführt werden.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    EndIf
    EndIf
    Else
    $Test = Execute($sParam)
    If @error <> 0 Then
    _Print('Der übergebene Parameter ' & $sParam & ' kann nicht ausgeführt werden.' & @CRLF & 'Bitte überprüfen Sie ihre Eingabe.' & @CRLF)
    EndIf
    EndIf
    EndFunc ;==>_Execute

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

    Func _Help($iStatus = 0, $sCmd = '')
    Switch $iStatus
    Case 0
    _Print('Hilfe Übersicht:' & @CRLF & @CRLF)
    _HelpLoad()
    Case 1
    _HelpCmd($sCmd)
    EndSwitch

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

    EndFunc ;==>_Help

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

    Func _Close()
    Exit
    EndFunc ;==>_Close

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

    Func _Clear($sParam)
    $aCmd = StringSplit($sParam, ' ')
    If $aCmd[0] = 1 Then
    If $aCmd[1] = '/?' Then
    _Help(1, 'Clear')
    Else
    _GUICtrlEdit_SetText($ECon, '')
    EndIf
    Else
    _GUICtrlEdit_SetText($ECon, '')
    EndIf
    EndFunc ;==>_Clear

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

    Func _Print($sText) ; ==> %Text%
    $aCmd = StringSplit($sText, ' ')
    If $aCmd[0] = 1 Then
    If $aCmd[1] = '/?' Then
    _Help(1, 'Print')
    Else
    _GUICtrlEdit_AppendText($ECon, $sText)
    EndIf
    Else
    _GUICtrlEdit_AppendText($ECon, $sText)
    EndIf

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

    EndFunc ;==>_Print

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

    Func _ConsoleWrite($sText) ; ==> %Text%
    Local $sSubstring = @ComputerName & '> ' & $sText
    _GUICtrlEdit_AppendText($ECon, $sSubstring & @CRLF)
    EndFunc ;==>_ConsoleWrite

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

    Func _Variable($sCmd)
    Local $1, $sSpl

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

    $sSpl = StringSplit($sCmd, ' ')
    $1 = StringSplit($sSpl[2], '')

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

    If $1[1] = '§' Then
    Switch $sSpl[2]
    Case '§home'
    _Print('Das Homeverzeichnis ist: "' & @HomeDrive & '"' & @CRLF)
    Case '§work'
    _Print('Aktuelles Arbeitsverzeichnis: "' & @CRLF & @WorkingDir & '"' & @CRLF)
    Case '§profil'
    _Print('Der aktuelle Profilpfad lautet: "' & @UserProfileDir & '"' & @CRLF)
    Case Else
    _Print('Es liegt keine Definition von: "' & $sSpl[2] & '" vor.' & @CRLF)
    EndSwitch
    Else
    _Print(_ArrayToString($sSpl, ' ', 2) & @CRLF)
    EndIf

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

    EndFunc ;==>_Variable

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

    Func MainClose()
    Exit
    EndFunc ;==>MainClose

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

    ;Hilfe
    Func _HelpCmd($sCmd)
    If FileExists($DllPfad) Then
    $Handle2 = _SQLite_Open($DllPfad)
    ConsoleWrite("DatenbankHandle3: " & $Handle2 & @CR)
    If @error > 0 Then
    ConsoleWrite("@error: " & @error & @CR)
    MsgBox(16, "SQLite Fehler", "Konnte die Datenbank nicht laden!")
    Exit -1
    EndIf
    ConsoleWrite('cmd: ' & $sCmd & @CRLF)
    If Not _SQLite_Exec(-1, "Select Substr(text, 0) from tblHilfe WHERE command = '" & StringLower($sCmd) & "';", "_cmdHilfe") = $SQLite_OK Then
    _Print('Zu diesem Commando gibt es noch keine Hilfe.' & @CRLF)
    EndIf
    _SQLite_Close()
    EndIf

    EndFunc

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

    Func _cmdHilfe($aRow)
    Local $StrSplit
    ConsoleWrite('_cmdHilfe($aRow)' & @CRLF)
    For $s In $aRow
    ConsoleWrite($s & @TAB)
    _Print($s & @CRLF)
    Next

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

    EndFunc ;==>_cmdHilfe

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

    Func _HelpLoad()
    If FileExists($DllPfad) Then
    $Handle2 = _SQLite_Open($DllPfad)
    ConsoleWrite("DatenbankHandle2: " & $Handle2 & @CR)
    If @error > 0 Then
    ConsoleWrite("@error: " & @error & @CR)
    MsgBox(16, "SQLite Fehler", "Konnte die Datenbank nicht laden!")
    Exit -1
    EndIf

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

    _SQLite_Exec(-1, "Select command from tblHilfe;", "_allHilfe")
    ;_SQLite_Exec(-1, "Select * from tblHilfe;", "_allHilfe")
    _SQLite_Close()
    EndIf
    EndFunc ;==>_HelpLoad

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

    Func _allHilfe($aRow)
    Local $StrSplit, $a = 0, $HilfeText = ''

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

    For $s In $aRow
    $a += 1
    ConsoleWrite('$s: ' & $s & @CRLF)
    $HilfeText = $s
    Next
    ConsoleWrite('$a: ' & $a & @CRLF)
    ConsoleWrite('Hilfetext: ' & $HilfeText & @CRLF)
    _Print($HilfeText & @CRLF)

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

    ConsoleWrite(@CRLF)
    EndFunc ;==>_allHilfe
    #endregion Funktionen

    [/autoit]

    Hilfe-Programm

    Spoiler anzeigen
    [autoit]


    ;
    ; AutoIt Version: 3.0
    ; Language: German
    ;
    ; Script Function:
    ; Console - Hilfe
    ; NeuAuflage
    ;

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

    #region Include
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    #include <ListviewConstants.au3>

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

    #endregion Include

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

    #region Head
    Global $DllPfad = @ScriptDir & '/h.dll'
    _SQLite_Startup()
    If @error > 0 Then
    MsgBox(16, "SQLite Fehler", "SQLite.dll konnte nicht geladen werden!")
    Exit -1
    EndIf

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

    #endregion Head

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

    #region StartUp
    _Main()

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

    #endregion StartUp

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

    #region GUICreate
    Func _Main()
    #Region ### START Koda GUI section ### Form=C:\Users\Max\Desktop\Alle_Ordner\Programme\Autoit\Console\Gui\Hilfe.kxf
    Global $Hilfe = GUICreate("Hilfe", 454, 217, 296, 125, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER), BitOR($WS_EX_APPWINDOW,$WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
    Global $BtSpeichern = GUICtrlCreateButton("Speichern", 56, 184, 75, 25, 0)
    Global $BtAbbrechen = GUICtrlCreateButton("Abbrechen", 136, 184, 75, 25, 0)
    Global $Label1 = GUICtrlCreateLabel("Verfügbare Commandos:", 8, 8, 154, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Global $ListCmd = GUICtrlCreateListView("Cmd|Hilfe Text", 8, 32, 409, 142, BitOR($LVS_REPORT,$LVS_SINGLESEL,$LVS_SHOWSELALWAYS,$WS_HSCROLL))
    GUICtrlSendMsg(-1, 0x101E, 0, 50)
    GUICtrlSendMsg(-1, 0x101E, 1, 355)
    Global $BtNeu = GUICtrlCreateButton("Neu", 8, 184, 43, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    _ListLoad()

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _SQLite_Shutdown()
    Exit

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

    Case $BtSpeichern

    Case $BtAbbrechen
    Exit
    Case $BtNeu
    _CmdNeu()
    Case $ListCmd

    EndSwitch
    WEnd
    EndFunc

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

    Func _Edit($sTitel)
    #Region ### START Koda GUI section ### Form=C:\Users\Max\Desktop\Alle_Ordner\Programme\Autoit\Console\Gui\Hilfeedit.kxf
    Global $Hilfeedit = GUICreate("HilfeText - ", 418, 213, 379, 248, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER), BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
    Global $Edit1 = GUICtrlCreateEdit("", 0, 24, 417, 169, BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN,$WS_VSCROLL), 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Global $Label1 = GUICtrlCreateLabel("Bitte geben Sie den Hilfetext ein:", 0, 0, 195, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    Global $Label2 = GUICtrlCreateLabel("Text wird beim schließen gespeichert", 0, 192, 178, 17)
    GUICtrlSetFont(-1, 5, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    WinSetTitle('HilfeText - ', '', 'HilfeText - ' & $sTitel)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _HilfeTextNeu($sTitel, GUICtrlRead($Edit1))
    GUIDelete($HilfeEdit)
    Return
    EndSwitch
    WEnd
    EndFunc

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

    #endregion GUICreate

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

    #region Funktionen
    Func _CmdNeu()
    Local $cmd = ''
    ConsoleWrite('Cmd neueintrage' & @CRLF)
    $cmd = InputBox('Commando Titel', 'Wie lautet das' & @CRLF & 'neue Commando', '', ' M', 140,140)

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

    If Not $cmd = '' Then
    _Edit($cmd)
    EndIf
    EndFunc

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

    Func _HilfeTextNeu($sCmd, $sText)
    ConsoleWrite('Hilfetext neueintrage' & @CRLF)
    ; ==> SQL Tabelle erweitern
    ; ==> Text hinzugügen
    ; ==> Listview aktualisiern
    $Handle2 = _SQLite_Open($DllPfad)
    ConsoleWrite("DatenbankHandle2: " & $Handle2 & @CR)
    If @error > 0 Then
    ConsoleWrite("@error: " & @error & @CR)
    MsgBox(16, "SQLite Fehler", "Konnte die Datenbank nicht laden!")
    Exit -1
    EndIf
    If not _SQLite_Exec(-1, "Create table IF NOT EXISTS tblHilfe (command, text);") = $SQLITE_OK Then ConsoleWrite("SQLite ERROR" & @CRLF & "ES gab da mal nen Fehler: " & @error & @CR & "@extended: " & @extended)
    ConsoleWrite('Versuch mit variable...' & @CRLF)
    _SQLite_Exec(-1, "Insert into tblHilfe values ('" & $sCmd & "', '" & $sText & "');")
    ConsoleWrite("@error: " & @error & @CR)

    _SQLite_Close()

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

    GUISwitch($Hilfe)
    GUIDelete($HilfeEdit)
    EndFunc

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

    Func _ListLoad()
    If FileExists($DllPfad) Then
    $Handle2 = _SQLite_Open($DllPfad)
    ConsoleWrite("DatenbankHandle2: " & $Handle2 & @CR)
    If @error > 0 Then
    ConsoleWrite("@error: " & @error & @CR)
    MsgBox(16, "SQLite Fehler", "Konnte die Datenbank nicht laden!")
    Exit -1
    EndIf

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

    ;_SQLite_Exec(-1, "Select command from tblHilfe;", "_allHilfe")
    _SQLite_Exec(-1, "Select * from tblHilfe;", "_allHilfe")
    _SQLite_Close()
    EndIf

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

    EndFunc ;==>_Hilfeubersicht

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

    Func _allHilfe($aRow)
    Local $StrSplit, $a = 0, $HilfeText = ''

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

    For $s In $aRow
    $a += 1
    ConsoleWrite('$s: ' & $s & @CRLF)
    If $a = 1 Then
    $HilfeText = $s
    ElseIf $a = 2 Then
    $HilfeText = $HilfeText & '|' & $s
    EndIf
    Next
    ConsoleWrite('$a: ' & $a & @CRLF)
    ConsoleWrite('Hilfetext: ' & $HilfeText & @CRLF)
    GUICtrlCreateListViewItem ( $HilfeText, $ListCmd )

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

    ConsoleWrite(@CRLF)
    EndFunc ;==>_allHilfe
    #endregion Funktionen

    [/autoit]


    Lg MM TOP-POL

  • so

    die Hilfe wurde eingearbeitet.
    Die Hilfetexte werden über ein exterenes Programm in eine dll Datei gespeichert, welche von der Console ausgelesen wird.
    Hauptcode im ersten Thrad aktualisiert.