CreateRexxPort(name$)
name$
zugewiesen. Um ARexx-Nachrichten
mit Ihrem Skript zu erhalten, muss es einen ARexx-Port haben.
Andere Anwendungen können dann mit dem Skript kommunizieren,
indem sie Nachrichten an diesen Port senden. Alle Nachrichten,
die an Ihrem ARexx-Port ankommen, werden an die Callback-Funktion
weitergeleitet, die Sie mit dem Befehl InstallEventHandler()
(benutzen Sie den ARexx-Ereignis-Handler) aufrufen können.
Wenn Sie diesen Ereignis-Handler nicht installieren, erhalten
Sie keine Benachrichtigungen über eingehende Nachrichten.
Bitte beachten Sie, dass der ARexx-Portname immer zwischen Groß- und Kleinschreibung unterscheidet. So bezeichnen "MYPORT" und "myport" zwei verschiedene ARexx-Porte. Aus Stilgründen wird empfohlen, dass Sie nur Großbuchstaben für Ihren Portnamen verwenden. Außerdem muss jeder ARexx-Port eindeutig im System sein. Wenn Sie einen Portnamen angeben, der bereits verwendet wird, schlägt dieser Befehl fehl. Stellen Sie daher sicher, dass Sie einen eindeutigen Namen verwenden.
Bitte beachten Sie, dass jedes Hollywood-Skript nur einen ARexx-Port haben kann. Daher kann dieser Befehl nur einmal in Ihrem Skript aufgerufen werden. Sie können den von diesem Befehl erstellten Port nicht löschen. Er wird automatisch geschlossen, wenn Hollywood beendet wird.
Nachfolgend finden Sie ein Beispiel, wie ARexx-Nachrichten erfasst werden können. Siehe InstallEventHandler für mehr Informationen darüber, wie die Callback-Funktion des Benutzers aufgerufen wird.
Siehe auch RunRexxScript() und SendRexxCommand().
Function p_EventFunc(msg) Switch msg.action Case "OnARexx" Switch msg.command Case "RealFunc" Return(100) Default Local t = SplitStr(msg.args, "\0") DebugPrint(msg.command, "called with", msg.argc, "argument(s)") For Local k = 1 To msg.argc DebugPrint("Argument", k .. ":", t[k - 1]) Next EndSwitch EndSwitch EndFunction CreateRexxPort("MY_COOL_REXX_PORT_123") InstallEventHandler({OnARexx = p_EventFunc}) Repeat WaitEvent ForeverSpeichern Sie den Code oben als ein Hollywood-Skript und führen Sie es mit Hollywood aus. Speichern Sie dann den folgenden Code als Rexx-Skript und führen Sie es von einer Shell mit "RX test.rx": aus.
/* Die erste Zeile von jedem Rexx-Skript muss ein Kommentar sein */ OPTIONS RESULTS /* Der Port von unserem Hollywood-Skript ist nun der Host */ ADDRESS MY_COOL_REXX_PORT_123 /* Sendet Befehle von Rexx nach Hollywood */ /* Schauen Sie auf die Debug-Ausgabe */ DummyFunc_1 '"Dummy Arg 1"' DummyFunc_2 1 2 3 DummyFunc_3 '"First arg"' '"Second arg"' '"Third arg"' DummyFunc_4 /* no args */ DummyFunc_5 "These will be handled as separate arguments" DummyFunc_6 '"This is a single argument (use double quotes!)"' 'RealFunc' SAY RESULT /* Dies gibt 100 aus; ist das Resultat von RealFunc */ |