Kommando in einem Plugin ausführen

  • Hi @all,


    Ich will ein Kommando in einem Plugin ausführen.


    die Ausgabe soll dann als Info-msg erscheinen.


    bsp.


    Code
    popen("/sbin/chroot /hdd/xdevels /hdd/www/apache/bin/apachectl restart");


    mit Ausgabe in einen Puffer (oder tmp-file) und anzeigen mit einem ewindow.


    So kann ich das C-männisch Lösen.


    Ich habe jetzt erfahren enigma hat bereits ein Objekt eConsoleAppContainer


    > console.cpp,


    das konnte ich aber noch nicht testet, und der src ist ca 10 mal so lang wie das, was ich vor habe also meine Frage:


    hat jemand von euch Erfahrung mit eConsoleAppContainer?


    Gruß Emanuel :winking_face:

    rosig

  • Hi emanuel,


    ich habe auch mal mit dem eConsoleApp gespielt, habe es aber nicht ans laufen bekommen und mache jetzt in meinem plugins einen system() Aufruf und tausche die Daten zwischen dem zu startenden Programm und meinem Plugin über tmp-Files aus.
    Auch die popen Version habe ich versucht, aber für meine Art von externem Programm aufruf war diese Methode nicht geeigent.


    Beantwortet zwar nicht Deine Frage, aber evtl. hilft es Dir trotzdem weiter.


    GRüße
    tYREL

    greetings tYREL

  • Hi,


    popen hatte für meine Zwecke keine saubere Ausgabe,


    Ich weiß auch nicht wieso.


    Jetzt nehme ich einen Teil aus script.cpp


    der meine Zwecke erfüllt.



    Gruß Emanuel :winking_face:

    rosig

    Einmal editiert, zuletzt von emanuel ()

  • das mit dem tempfile anzeigen hat einen grossen hacken.. du siehst die ausgabe erst wenn das systemcommand fertig ist...
    das ist halt der vorteil von nem eConsoleAppContainer.. da siehste du die ausgabe in dem moment wo es passiert.. und bei sachen die länger dauern (z.b ein format oder so) wartest du erst ewig.. und dann kommt irgendwann die ausgabe.. also auch nicht schön.. klar das kann man mit msgboxen und sync auch in den griff bekommen.. aber der eConsoleAppContainer ist schon was feines...
    versuchs mal hiermit :winking_face:


    das für die .cpp


    .h


    und gestartet wird das ganze so

    Code
    playDVD_Run screen("/var/tmp/.delete_movie.sh");	
    	screen.show();
    	screen.exec();
    	screen.hide();


    wie immer erhebe ich mit dem code keinerlei anspruch auf schönheit oder bugfreiheit.. bei mir hat er aber immer gefunzt ;)..
    bei komplexeren sachen die keine sichtbare ausgabe machen, lohnt es sich ein shellscript zu starten und dadrin die ausgaben über ein simples echo zu realisieren...

    Einmal editiert, zuletzt von luke_s ()