Funktionen von außen aufrufen

  • Hallo Zusammen,

    ich bastele gerade an einem Steuerskript welches im Hintergrund läuft und verschiedene Parameter überwacht. das funktioniert alles soweit ganz gut. Nun benötige ich folgendes:

    Eine weitere Software (in diesem Fall ist es das MediaCenter XBMC) kann ausführbare Dateien aufrufen. Das habe ich gestestte und kalppt soweit zuverlässig. Nun möchte ich aber nicht das gesamte Steuerskript aufrufen (Das läuft bereits im Hintergrund) sondern nur eine Funktion daraus. Gibt es da eine Möglichkeit?

    Vielen Dank und Grüße

    B

  • Indirekt. Du kannst Interprozesskommunikation benutzen. Das geht zum Beispiel per Named Pipes, TCP oder über den IO-Stream.
    Ansonsten: Evtl. noch per Startparameter...

    [autoit]


    If $CmdLine[0] = 1 Then
    Call($CmdLine[1])
    Exit
    EndIf

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

    MsgBox(0, "", "Normale Ausführung...")

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

    Func _CallMe()
    MsgBox(0, "", "hi")
    EndFunc

    [/autoit]

    Wenn du dieses Skript mit dem Parameter _CallMe (SciTE Shift + F8) aufrufst, wird die Funktion ausgeführt.^^

    lg

  • @ chesstiger .. geile sache dein Script .. Praktisch dass jemand anderes die gleichen Probleme hat wie ich ...

    eine Farge hab ich aber noch dazu. :D

    Angenommen, dass besagte Script arbeitet bereits im Hintergrund und ich mache dann wieder den EXE call allerdings mit Parameter z.b. "_callMe" dann wird doch in diesem Moment eine Zweite Instance des Prozesses / Programmes ausgeführt.

    Wenn also in meiner Funktion "_callMe" auf etwas zurückgegriffen wird, dass im Hintergrundprozess erst bereitgestellt werden muss, oder etwas in diesem Prozess verändern soll, funktioniert das ja dann nicht. ..
    ( WEIL anderer Speicherbereich, da andere Instance )

    .. fällt dir da spontan ne Möglichkeit ein, das zu koppeln ? sozusagen, dass man die Funktion des Laufenden Hintergrundprozesses anstupst ? das sollte doch mit event's oder sowas gehen ..
    NUR wie ? ?(

  • Wenn du Informationen an einen laufenden Prozess senden willst...

    Zitat


    Indirekt. Du kannst Interprozesskommunikation benutzen. Das geht zum Beispiel per Named Pipes, TCP oder über den IO-Stream.

    Meine Lieblingsvariante ist TCP. Ich bin momentan unter Android, da fällt das Skripten also weg.

    Ich schreibe nachher mal einen Rohbau wie oben, der auf TCP basiert.

    lg^^