You are jumping in a little too fast. REXX is actually fairly easy, but there are two versions. One is known as "Classic REXX", which is the default. There is also "Object REXX" which needs to be set up by the user. It is usually one, or the other, but not both, although there is a way to do both. I assume that you are still using "Classic REXX".
Next, you picked a more advanced function with RxMessageBox. It does need some extra things to make it work.
There are also a few more advanced REXX packages, that help to make GUI interfaces. VXREXX, and DrDialog, are the two that I remember. I use DrDialog, but VXREXX is probably a better choice, since the support is already in eCS (I am not sure if the programmer package is included).
So if I have a Rexx widget in my taskbar and tell it to "say Linein( 'file1' )" and file1 contains "Hello, Larry!" would I see that on the taskbar?
Not the way you are doing it. There are some widgets that support REXX code, but what you did would simply start the program in a window. There is also a widget to add an "Extended system tray", which does some of the things that the windows taskbar does. AFAIK, the only things that actually use that, are some programs that have been ported using the QT4 package, and some JAVA programs.
If your quoted code is what you tried, it isn't likely to work. First, to tell the command processor to decode REXX command file, it needs to start with a comment line. That is the first two characters, in the first line, need to be "/*" ( slash asterisk, without the quotes). That is usually followed by a description of what the program is, and the comment is closed by "*/" (asterisk slash, without the quotes). If that is not found, the command processor attempts to treat it like a normal batch file (pretty much like DOS).
Then, you need to load the appropriate support module(s), which is one of the reasons why RxMessageBox isn't working. Add this sequence:
/* Load the rexxUtil functions -------------------------------------------- */
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs
Which loads the functions, including RxMessageBox. Be aware, that this is a system wide load, so any program can use it, as long as it stays loaded. Proper practice dictates that you should unload that stuff, when you are finished with it. In real life, if you do that, and some other REXX program is using it, it goes away, and the other program will die. The fix is: do NOT unload it. You should always load it to be sure that your program has access, just in case it is the first program that needs it. There are more function libraries available, but you should stay with the simple stuff to start.
Then, add your line of code. Now, you can run that from a command line, or from a program icon, or, put the program icon in the eCenter bar, and it will open a text window, and do what you asked.
At this point RxMessageBox still won't work, because it needs to be run by a program that is capable of doing a graphical presentation. The easiest program is PMREXX. Create a file called HelloLarry.cmd, and insert this code:
/* Hello Larry */
/* Load the rexxUtil functions -------------------------------------------- */
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs
Do until RxMessageBox("Hello Larry","Testing","OK","EXCLAMATION") = 1
end
EXIT
Now go to a command line, in the directory where you saved the HelloLarry.cmd file, and type "PMREXX /Q HelloLarry". It will open the PMREXX window (which may hide behind other things), and pop up the message window. When you click OK, it will close (PMREXX would stay open, without the "/Q" parameter).
Of course, this is pretty simple, and it contains no checking, but it is a start.