Hack - REXX scripting

Источник: rhack.sourceforge.net

Hack and REXX

One of the most interesting point in Hack is its ability to run REXX script.

When you install Hack, it comes with "Regina.dll". This file contains the free Regina REXX interpreter (version 3.2).

If you already own a commercial copy of another REXX interpreter (IBM's Object REXX, WREXX...), in order to use it instead of Regina, simply delete Regina.dll from Hack directory (or rename it). Hack works through the RexxTrans.dll to execute REXX scripts.

Hack adds several functions to the REXX interpreter so its integration is made seamless (more or less ;-) ).

Hack's main window

First, you do not need to specify Hack that you have deleted, added or renamed a script. The menus "Functions" and "User" are automatically recursively filled when the user clicks on the menu.

"Functions" menu contains standard scripts delivered with Hack. They are stored in the same directory as Hack.exe.

"User" menu contains user scripts. They are stored in %APPDATA%\Hack\Functions.

This allows multi-user computers to have a separate set of scripts for each user.

If you don't know REXX language but have skill programming, you can learn REXX by reading the following PDF file Regina 3.1.

REXX interface

REXX variables

Variable name Description
hk_crlf Handy variable which holds a line return
hk_currentfile Full path name to the current file being edited
hk_currentfileshort File name only of the current file being edited
hk_currentfilesize Size in bytes of the current file being edited

REXX functions



Displays a non-modal window containing a string. The string can be either a text string or an RTF string, the function is smart enough to differenciate between the two types and display text formatting.

  • width : window width in pixels
  • height : window height in pixels
  • content : string of the text to be displayed
  • title : window title
Return value

The function returns always 0.

  • One way of using hk_display is to design the page using Wordpad (Word should be avoided as it generates very large RTF file), to read it into a variable and to pass it to hk_display function. You can even set some variable name in the string in order to change them accordingly to your needs
  • To know exactly what width and height to use, set the window to any desired size and double click on the left of the "Close" button while holding Ctrl key. A message box will tell you what are the actual dimensions.