Fragen zu SciTE

  • Hallo Community.

    Zum Erstellen meiner Skripte benutze ich den Editor SciTE. Hierzu habe ich ein Paar Fragen:

    Von Kommandozeilenprogramme lese ich den Ausgabestrom aus und lasse diesen mir dann in der Ausgabekonsole von SciTE anzeigen. Ist es möglich diese Ausgabe automatisch mitzuscrollen? Außerdem habe die lokale SciTE-Properties-Datei bearbeitet. Hier habe ich definiert, dass zusätzliche Kommandos im Tools-Menü angezeigt werden. command.41.*.au3 zeigt mit das Menü nur für au3-Skripte an. Wie kann ich einen Befehl für mehrere Dateitypen anzeigen lassen? Muss ich dann für jeden Dateityp diese Einstellungen wiederholen?

    Danke im Voraus?

  • ...also bei mir scrollt die Konsole in Scite automatisch nach unten, sobald etwas neues in sie geschrieben wird...
    Hast du @CRLF in das ConsoleWrite() eingefügt?
    ...oder meintest du horizontales scrollen?

    grüße,
    r4lf

  • Natürlich meine ich das vertikale Scrollen. Über einen selbstdefinierten Menüpunkt lese ich Kommandozeilenprogramme aus und lasse es in der SciTE-Konsole ausgeben. Nach der Ausführung springt der Cursor immer zur ersten Zeile der SciTE-Konsole. Das ist unpraktisch, weil das für mich Wichtige am Ende steht und ich immer bis zum Ende der Ausgabe scrollen bzw. die Konsolenansicht vergrößern muss.

  • Das hat scite numal so ansich, sowahl das script beendet wird, sprongt die console an den anfang
    Indemfall einfach das script mit einer Schleife am leben halten

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Das SciTE in der Konsole wieder an den Anfang springt, ist unbefriediged! Mittels Au3Info habe ich schon versucht, wie das Steuerelement der Konsole heißt, um es dann über Skript zu steuern. Hat jemand eine Idee wie ich an den Namen der Konsole komme?

    Es ist nicht sinnvoll, dass Skript am Leben zu halten, weil ich am Skript weiterarbeite.

    • Offizieller Beitrag

    Ich habe mir bisher noch nicht angesehen, wie die Konsole angesteuert wird. Ich vermute aber, dass du hier mit LUA oder SciTECommands weiterkommst.
    Hier mal der SciTECommands-Part aus Xenos OrganizeIncludes:

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Description: Sending commands to SciTE interface
    ;===============================================================================
    Func SendSciTE_Command($sCmd, $Wait_For_Return_Info = 0)
    Local $WM_COPYDATA = 74
    Local $WM_GETTEXT = 0x000D
    Local $WM_GETTEXTLENGTH = 0x000E224
    Local Const $SCI_GETLINE = 2153
    Local $Scite_hwnd = WinGetHandle('DirectorExtension') ; Get SciTE DIrector Handle
    Local $My_Hwnd = GUICreate('AutoIt3-SciTE interface') ; Create GUI to receive SciTE info
    Local $My_Dec_Hwnd = Dec(StringTrimLeft($My_Hwnd, 2)) ; Convert my Gui Handle to decimal
    $sCmd = ':' & $My_Dec_Hwnd & ':' & $sCmd ; Add dec my gui handle to commandline to tell SciTE where to send the return info
    ;~ ConsoleWrite('SciTE Command --> ' & $sCmd & @LF)
    Local $CmdStruct = DllStructCreate('Char[' & StringLen($sCmd) + 1 & ']')
    DllStructSetData($CmdStruct, 1, $sCmd)
    Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr')
    DllStructSetData($COPYDATA, 1, 1)
    DllStructSetData($COPYDATA, 2, StringLen($sCmd) + 1)
    DllStructSetData($COPYDATA, 3, DllStructGetPtr($CmdStruct))
    DllCall('User32.dll', 'None', 'SendMessage', 'HWnd', $Scite_hwnd, _
    'Int', $WM_COPYDATA, 'HWnd', $My_Hwnd, _
    'Ptr', DllStructGetPtr($COPYDATA))
    GUIDelete($My_Hwnd)
    EndFunc ;==>SendSciTE_Command
    ;===============================================================================
    ; Description: Sending commands to SciTE interface
    ;===============================================================================
    Func MY_WM_COPYDATA($hWnd, $msg, $wParam, $lParam)
    Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr', $lParam)
    Local $SciTECmdLen = DllStructGetData($COPYDATA, 2)
    Local $CmdStruct = DllStructCreate('Char[255]', DllStructGetData($COPYDATA, 3))
    $SciTECmd = StringLeft(DllStructGetData($CmdStruct, 1), $SciTECmdLen)
    EndFunc ;==>MY_WM_COPYDATA

    [/autoit]

    Das könnte dir als Ansatz helfen. Mußt 'nur' noch die erforderlichen Kommandos finden. (Scintilla Dokumentation)