Au3/Schwert Shell

  • Hi, Ich hatte die Idee ne ganz simple Shell zu schreiben: Eine Kommandozeile, welche die Eingabe in eine au3 Datei unsetzt und diesse sofort ausführt
    (Ne eingabezeile mit Au3 Funktionen eben...)

    (Ja, ich weiß das es nicht besonders kreativ ist, aber mir fällt nichts ein was ich sonst machen kann :D)

    Allerdings habe ich dazu ein paar fragen:

    1.:
    Wenn man bei der "Vollversion" von SciTe auf F5 drückt startet ja der Au3 Check Errors... Wie kann ich machen das mein Programm die Fehler die in dieser einen zeile gefunden wurden von Au3 Check Errors emüfängt? (StdOutRead odasowas??)

    2.:
    Wie kann ich einen HotKey an das Fesnter von meinem Programm binden?
    Wenn ich _IsPressed ("") in die While schleife vom GUI häng wirds sehhhhrrrr langsam...
    Aber das Problem ist:
    Wenn man z.b. MsgBox (0, "", "") in die Zeile Schreibt, und ENTER drückt, dann erscheint tatsächlich eine MsgBox, allerdings hat mein HotKey wohl das Von der Box überspielt, odaso... Wenn ich auf ENTER klicke um die Box zu schließen geht sie nicht zu, sondern eine neue kommt...
    Wie bekomm ich einen HotKey der nicht die Anderen wegspült, aber auchnicht den GUI zu stark verlangsamt???

    HBier ist mein bisheriger (Noch sehr simpler) Code:
    (Er kann bis jetzt noch keine Funcs abspielen die n Include brauchen, etc...)

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=C:\Programme\AutoIt3\SciTE\Koda\Templates\Schwert Shell.kxf
    $Form1 = GUICreate("Au3/Schwert Shell", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
    $lst = GUICtrlCreateEdit("", 0, 0, 1273, 713)
    $cmd = GUICtrlCreateInput("", 0, 720, 1273, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    HotKeySet ("{ENTER}", "read")
    While 1
    $msg = GUIGetMsg ()
    If $msg = -3 Then Exit
    WEnd

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

    Func read ()
    If Not WinActive ("Schwert Shell") Then Return 0
    $line = GUICtrlRead ($cmd)
    FileDelete (@TempDir & "\Temp.au3")
    FileWrite (@TempDir & "\Temp.au3", $line)
    ShellExecute (@AutoItExe, @TempDir & "\Temp.au3")
    EndFunc

    [/autoit]

    Vielen Dank schonmal :!:

    Das Schwert

    Theorie ist wenn man weiß wie's geht, aber nichts klappt.
    Praxis ist wenn's klappt aber man weiß nicht weiso.

    Bei Microsoft sind Theorie und Praxis vereint: Nichts klappt und keiner weiß wieso ;)

    Einmal editiert, zuletzt von Das Schwert (22. November 2009 um 19:36)