[name$ =] CreateRexxPort(name$[, enum])
OnARexx) 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.
Ab Hollywood 11 können Sie das optionale Argument enum auf
True setzen, um CreateRexxPort() zu zwingen, automatisch einen
freien Rexx-Port zu finden. Dazu wird der angegebene name$
verwendet und Zahlen wie .1, .2, .3... angehängt, bis ein noch
verfügbarer Portname gefunden wird. Dieser Portname wird dann
an Sie zurückgegeben.
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().
True, wenn Hollywood automatisch Rexx-Ports
suchen soll, bis ein verfügbarer gefunden wird, oder False,
wenn CreateRexxPort() fehlschlagen soll, wenn der angegebene
Name nicht verfügbar ist (Standardwert ist False) (V11.0)enum auf True
gesetzt haben (siehe oben) (V11.0)
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
Forever
Speichern 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 */ |