Ich habe mal eine Art scriptsprache gebaut. Naja eher ist es eine Anregung, dass ihr es macht es sind nämlich nur 2 dähmliche Befehle da.
Hauptdatei:
Spoiler anzeigen
#NoTrayIcon
#include <_stringgetstr.au3>
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
$befs='cout:"text",anzahl (Befehl gibt etwas aus)'&'|msg:"titel","text" (Befehl gibt etwas in einem Fenster aus)'
hotkeyset("{enter}","funk")
;~ hotkeyset("{enter}")
Global $title="Scriptlanguage"
#Region ### START Koda GUI section ### Form=D:\Progen\AutoIt\Meine\Forms\scriptlang.kxf
$Form1 = GUICreate($title, 438, 392, 196, 125, 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))
$List1 = GUICtrlCreateList("", 16, 8, 385, 110)
guictrlsetdata($List1,$befs)
GUICtrlSetTip(-1,"Hier sind alle Befehle")
$List1 = GUICtrlCreateList("", 16, 144, 385, 201)
GUICtrlSetBkColor($List1,"0xEEEEEE")
GUICtrlSetTip(-1,"Konsole")
$Input1 = GUICtrlCreateInput("", 16, 360, 385, 21)
GUICtrlSetTip(-1,"Geben sie einen der obigen Befehle ein.")
#EndRegion ### END Koda GUI section ###
if $cmdline[0]>0 Then
guictrlsetdata($Input1,$cmdline[1])
funk()
exit
EndIf
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
if WinActive($title)=0 Then
hotkeyset("{enter}")
WinWaitActive($title)
hotkeyset("{enter}","funk")
EndIf
WEnd
func links($str)
Return stringmid($str,1,stringinstr($str,":",0,1)-1)
EndFunc
func rechts($str)
Return stringmid($str,stringinstr($str,":",0,1)+1)
EndFunc
func trim($str,$txtx=" ")
return stringreplace($str,$txtx,"")
EndFunc
func funk()
hotkeyset("{enter}")
if guictrlread($Input1)<>"" Then
$txt=guictrlread($Input1)
if trim($txt)<>"" Then
$li=links(trim($txt))
$re=rechts($txt)
Switch $li
case "cout"
if trim($re)="" then
msgbox(0,"ERROR","Befehlserror: Falsche Anzahl an Parametern")
elseif _Stringgetnum($re,",")=1 then
$t=trim($re,'"')
GUICtrlSetData($List1,$t&"|")
Else
$t=trim(_stringgetStr($re,",",1),'"')
$z=int(trim(_StringgetStr($re,",",2),'"'))
if $z<1 then $z=1
for $x=1 to $z
GUICtrlSetData($List1,$t&"|")
Next
EndIf
case "msg"
if _stringgetnum($re,",")<>2 then
msgbox(0,"ERROR","Befehlserror: Falsche Anzahl an Parametern")
Else
$au=trim(_stringgetStr($re,",",2),'"')
$ti=trim(_StringgetStr($re,",",1),'"')
msgbox(0,$ti,$au)
EndIf
EndSwitch
EndIf
GUICtrlSetData($Input1,"")
EndIf
hotkeyset("{enter}","funk")
EndFunc
func msg($txt="")
msgbox(0,"",$txt)
EndFunc
Include:
Spoiler anzeigen
Func _StringgetStr($String,$Search,$index)
$old=0
$mom=0
$isindex=0
For $x=0 To $index
$isindex=$isindex+1
$old=$mom
$mom=StringInStr($String,$Search,0,1,$old+1)
If $mom=0 Or $isindex=$index Then ExitLoop
Next
If $mom=0 And $isindex<>$index Then
Return ""
ElseIf $mom=0 And $isindex=$index Then
$restring=StringMid($String,$old+1)
Return $restring
Else
$restring=StringMid($String,$old+1,$mom-$old-1)
Return $restring
EndIf
EndFunc
Func _Stringgetnum($String,$Search)
$old=0
$mom=1
$zahl=0
While $mom<>0
$mom=StringInStr($String,$Search,0,1,$old+1)
If $mom>0 Then
$old=$mom
$zahl=$zahl+1
EndIf
WEnd
Return $zahl+1
EndFunc