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
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
Edit: Mit F8 Zeigt und Versteckt sich das Programm