SelfTerminal

  • Ich habe mir ueberlegt mal eine Art Terminal zu schreiben, das die Commands selbst wiedererkennt.

    Soweit bin ich bissher... Es kann folgendes auf ein Command legen:
    -Programm starten
    -Music abspielen
    -Music stoppen
    -Zeit wiedergeben
    -Prozess beenden
    -Shutdown auf Zeit
    -Shutdown beenden
    -cfg anzeigen

    So sieht das ganze aus...

    [autoit]


    #include <Sound.au3>
    #include <Array.au3>
    #include <misc.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiButton.au3>
    Global $var4 , $x
    $BarConfig=FileRead ( "TermCFG.ini" )
    #Region ### START Koda GUI section ### Form=
    $Name = "SelfTerminal"
    $Name2 = "Options"
    ;~ Form1
    $Form1 = GUICreate($Name, 322, 223, 0, 0, $WS_POPUP)
    GUISetBkColor(0x000000, $Form1)
    $Input1 = GUICtrlCreateInput("", 8, 180, 233, 25)
    GUICtrlSetFont(-1, 11, 400, 0, "Comic Sans MS")
    $Edit1 = GUICtrlCreateEdit("", 0, 0, 321, 169)
    GUICtrlSetFont(-1, 12, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Button1 = GUICtrlCreateButton("Event", 256, 172, 60, 45, 0)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUISetState(@SW_HIDE, $Form1)
    ;~ Form2
    $Form2 = GUICreate($Name2, 113, 288, 0, 256, $WS_POPUP)
    GUISetBkColor(0x000000, $Form2)
    $Button6 = GUICtrlCreateButton("Run", 0, 0, 113, 41, 0)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button2 = GUICtrlCreateButton("PlayMusic", 0, 41, 113, 41, 0)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button3 = GUICtrlCreateButton("StopMusic", 0, 82, 113, 41, 0)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button4 = GUICtrlCreateButton("Re: Time", 0, 123, 113, 41, 0)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button5 = GUICtrlCreateButton("Process Close", 0, 164, 113, 41, 0)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button7 = GUICtrlCreateButton("Shutdown", 0, 205, 113, 41, 0)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Button9 = GUICtrlCreateButton("Shutdown Break", 0, 246, 113, 41, 0)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1, 0xFFFFFF)
    WinSetTrans($Name2, "", 220)
    GUISetState(@SW_HIDE, $Form2)
    ;~ Form3
    $Form3 = GUICreate("", 220, 25, 113, 256,$WS_POPUP)
    GUISetBkColor(0x000000, $Form3)
    $Input2 = GUICtrlCreateInput("", 0, 0, 190, 25)
    $Button8 = GUICtrlCreateButton("End", 190, 0, 30, 25, 0)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    GUISetState(@SW_HIDE, $Form3)
    ;~ Form4
    $Form4 = GUICreate($Name, @DesktopWidth - 322, @DesktopHeight - 123, 322, 0, $WS_POPUP)
    GUISetBkColor(0x000000, $Form4)
    $Edit2 = GUICtrlCreateEdit($BarConfig, 0, 0, @DesktopWidth - 322, @DesktopHeight - 123)
    GUICtrlSetFont(-1, 12, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    GUISetState(@SW_HIDE, $Form4)
    #EndRegion ### END Koda GUI section ###
    HotKeySet("{F8}", "_Func")
    If Not FileExists("TermCFG.ini") Then
    IniWrite("TermCFG.ini", "cfg", "Name", "Show TermCFG.ini")
    IniWrite("TermCFG.ini", "cfg", "Event", "Show CFG")
    IniWrite("TermCFG.ini", "/cfg", "Name", "Hide TermCFG.ini")
    IniWrite("TermCFG.ini", "/cfg", "Event", "Hide CFG")
    EndIf
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $var2 = GUICtrlRead($Input1)
    If IniRead("TermCFG.ini", $var2, "Name", 1) = $var2 Then
    $var3 = IniRead("TermCFG.ini", $var2, "Target", 1)
    EndIf
    If IniRead("TermCFG.ini", $var2, "Event", 1) = "Run" Then
    GUICtrlSetData($Edit1, "-- Starting " & $var3)
    Run(IniRead("TermCFG.ini", $var2, "Target", 1))
    ElseIf IniRead("TermCFG.ini", $var2, "Event", 1) = "Play" Then
    GUICtrlSetData($Edit1, "-- Playing " & $var3)
    _SoundPlay(IniRead("TermCFG.ini", $var2, "Target", 1))
    ElseIf IniRead("TermCFG.ini", $var2, "Event", 1) = "Stop" Then
    GUICtrlSetData($Edit1, "-- Stoping " & $var3)
    _SoundStop(IniRead("TermCFG.ini", $var2, "Target", 1))
    ElseIf IniRead("TermCFG.ini", $var2, "Event", 1) = "Time" Then
    GUICtrlSetData($Edit1, "-- Time is " & @HOUR & ":" & @MIN & ":" & @SEC)
    _SoundStop(IniRead("TermCFG.ini", $var2, "Target", 1))
    ElseIf IniRead("TermCFG.ini", $var2, "Event", 1) = "CloseProcess" Then
    $vars = IniRead(@ScriptDir & "\TermCFG.ini", $var2, "Process",1)
    GUICtrlSetData($Edit1, "-- Closing " & $vars)
    ProcessClose ( $vars )
    ElseIf IniRead("TermCFG.ini", $var2, "Event", 1) = "Shutdown" Then
    $vars = IniRead(@ScriptDir & "\TermCFG.ini", $var2, "ShutdownTime",1)
    GUICtrlSetData($Edit1, "-- Shutdown in " & $vars)
    Run ("shutdown -s -t "&$vars)
    ElseIf IniRead("TermCFG.ini", $var2, "Event", 1) = "ShutdownBreak" Then
    GUICtrlSetData($Edit1, "-- Shutdown Break")
    Run ("shutdown -a")
    ElseIf IniRead("TermCFG.ini", $var2, "Event", 1) = "Show CFG" Then
    GUICtrlSetData($Edit1, "-- Show CFG")
    GUISetState(@SW_SHOW, $Form4)
    ElseIf IniRead("TermCFG.ini", $var2, "Event", 1) = "Hide CFG" Then
    GUICtrlSetData($Edit1, "-- Hide without Save")
    GUISetState(@SW_HIDE, $Form4)
    Else
    GUICtrlSetData($Edit1, "-- Unknow... Starting Options to affect")
    GUISetState(@SW_SHOW, $Form2)
    EndIf
    Case $Button2
    $var = FileOpenDialog("Affect The New Input", "", "All (*.*)", 1)
    If $var = "" Then
    GUISetState(@SW_HIDE, $Form2)
    Else
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Name", $var2)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Target", $var)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Event", "Play")
    GUISetState(@SW_HIDE, $Form2)
    MsgBox ( 0,"Chat","Please restart to fix the Settings" )
    EndIf
    Case $Button3
    $var = FileOpenDialog("Affect The New Input", "", "All (*.*)", 1)
    If $var = "" Then
    GUISetState(@SW_HIDE, $Form2)
    Else
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Name", $var2)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Target", $var)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Event", "Stop")
    GUISetState(@SW_HIDE, $Form2)
    MsgBox ( 0,"Chat","Please restart to fix the Settings" )
    EndIf
    Case $Button4
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Name", $var2)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Event", "Time")
    GUISetState(@SW_HIDE, $Form2)
    Case $Button5
    GUISetState(@SW_SHOW, $Form3)
    $var4="Name of Process"
    GUICtrlSetData($Edit1, "-- Enter The Name of The Process")
    GUISetState(@SW_HIDE, $Form2)
    Case $Button6
    $var = FileOpenDialog("Affect The New Input", "", "All (*.*)", 1)
    If $var = "" Then
    GUISetState(@SW_HIDE, $Form2)
    Else
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Name", $var2)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Target", $var)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Event", "Run")
    GUISetState(@SW_HIDE, $Form2)
    MsgBox ( 0,"Chat","Please restart to fix the Settings" )
    EndIf
    Case $Button7
    GUISetState(@SW_SHOW, $Form3)
    $var4="Shutdown Time"
    GUICtrlSetData($Edit1, "-- Enter The Shutdown Time")
    GUISetState(@SW_HIDE, $Form2)
    Case $Button8
    If $var4="Name of Process" Then
    $vars = GUICtrlRead($Input2)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Name", $var2)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Process", $vars)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Event", "CloseProcess")
    GUISetState(@SW_HIDE, $Form3)
    MsgBox ( 0,"Chat","Please restart to fix the Settings" )
    ElseIf $var4="Shutdown Time" Then
    $vars = GUICtrlRead($Input2)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Name", $var2)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "ShutdownTime", $vars)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Event", "Shutdown")
    GUISetState(@SW_HIDE, $Form3)
    MsgBox ( 0,"Chat","Please restart to fix the Settings" )
    EndIf
    Case $Button9
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Name", $var2)
    IniWrite(@ScriptDir & "\TermCFG.ini", $var2, "Event", "ShutdownBreak")
    GUISetState(@SW_HIDE, $Form3)
    MsgBox ( 0,"Chat","Please restart to fix the Settings" )
    EndSwitch
    WEnd

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

    Func _Func()
    If $x = Default Or $x = 0 Then
    WinSetTrans($Name, "", 220)
    GUISetState(@SW_SHOW, $Form1)
    $x = 1
    ElseIf $x = 1 Then
    GUISetState(@SW_HIDE, $Form1)
    $x = 0
    EndIf
    EndFunc

    [/autoit]

    Edit: Mit F8 Zeigt und Versteckt sich das Programm

    2 Mal editiert, zuletzt von BlackVoice (30. Juni 2009 um 19:22)