OKScript Revision History

Here is a discription of the recent updates (based mostly on user feedback - thanks to everyone!) to OKScript. If you are having problems be sure to check here to see if your problem has been recognized and corrected. Registered users: update and retain your license settings by downloading the new code and installing it in your current OKScript program folder.
December 20, 2007Several changes to make OKScriptX play nice with Windows Vista, including Help, file associations and folder locations. (Each user gets a profile on first use.)
March 19, 2007Bug that caused OKScript startup to fail when no script parameters were present in the command line has been fixed.
March 2, 2007Editor is now marked as modified after  "Insert PLACE instruction" command. Also added ResetPlace pragma which automatically adds (or replaces) a PLACE instruction in the script if the panel position is changed.
November 18, 2006Added predefined macros for -LOWER and -TOGGLECASE.
January 20, 2005Mostly changes needed to port my website to www.mjmx.com. Also fixed a couple help file errors.
December 21, 2004Fixed problem with TOPANEL and RECOMPILE that caused some scripts to transfer to the wrong tab.
December 7,2004Added optional parameter to RECOMPILE instruction to direct recompilation to a particular tab. Fixed Insert PLACE instruction functionality for legacy (.oks) scripts. New icon and smaller installer.
September 5, 2004Fixed problem with OKScript not recognizing macros embedded in expressions (%-EX%) when their names contained digits. Also changed scanner so that scripts containing tab characters will properly compile and run.
July 4, 2004 Fixed problem expanding new-style (space containing) macros when the instruction field doesn't extend to the end of line. Unwound call stack when RECOMPILE is executed. Minor clarifications to help.
June 23, 2004Fixed bug in DO AT instruction with only time specified.
June 20, 2004Added RECOMPILE instruction. Fixed panel sizing issue that occured when panel creation was delayed. Fixed DO AT when dates are involved. Without a date, DO AT now uses the next occurance of the specified time instead of the current day. Debug improvements.
June 14, 2004Fixed MODE TITLE. Fixed panel sizing issue. Removed (for now) PRAGMA BLOCKPANELEXIT. Added a debugger (MODE ON/OFF DEBUG macrolist. View from File Menu.).
June 7, 2004Fixed editor focus problem that occured when a script error occured in a USEd file.
June 4, 2004Added macro list option to the STATE RESTORE and STATE ERASE instructions and added a file menu item to open the settings file (OKScript.ini).
June 3, 2004OKScript-X released with extensive changes, including 1) new pragmas for exit blocking, rollup and hiding file tabs; 2) built-in macros for query dialog, numeric test, convert to upper case, program running test, text length, file existance, button/menu enabled test, menu checked test, state saved test, character to/from ascii code, testing if the clipboard contains text; 3) simplified IF-ELSE-FI and PLACE; 4) improved integer formulas; 5) character counts on metacharacters, e.g. {right 5}; 6) replaced +, ~ and ^ metacharacters with {shift}, {alt} and {ctrl}; 7) added {space} metacharacter; 8) forced several dialogs to stay on top; 9) fixed diacriticals in GET dialog; 10) allowed macro expansions in button names, hints and menu names; 11) the -MYKEYS macro no longer performs metatranslation to keystroke codes. Fixed MODE TITLE instruction to behave as documented. Fixed editor bug to now allow the editing of non-script files.
December 5, 2003BUTTON colors can now specify a background color by appending it with a hyphen to the text color field, e.g. red-navy. Option added (at install time) to save settings file (OKScript.ini) under user's (hidden) Application Data folder - this allows OKScript to be used by users with limited (non-administrative) privileges. Setup program also lets the user create usage specific script folders. The reference section of the help file was completely reorganized.
November 1, 2003Updated license validation section to accept the older licenses that failed in previous releases.
October 23, 2003Completely new syntax highlighting script editor that includes printing, column and line text selection modes, multi-level undo/redo, expanded search options and much improved highlighting. Also fixed several editor bugs. The 16 bit version of OKScript has been discontinued.
August 27, 2003PLACE instruction modified to position a panel adjacent to the edge of the screen if the user's coordinates would cause the panel to be rendered off-screen.
January 29, 2003Bug fixes to move the cursor to position of error, color arithmetic expressions (%%...%) properly and make new (empty) editor pages act unmodified.
December 11Minor bug fixes and several enhancements, including:
  • User configurable editor syntax coloring and font. Syntax coloring makes visually navigating large scripts much easier. (Editor undo's now must be performed before the cursor is moved to a new line.)
  • BUTTON, MENU, RIGHT and WINDOW instructions can now force window identification to start at the beginning and or end at the end of the window's caption.
  • Infinite LOOPs can now be constructed by omitting the loop counter, or making it negative.
  • A panel's background color can now be set using PRAGMA WINCOLOR colorname.
  • A successful search will now scroll the cursor into view.
December 2Fixed (I hope) bug that kept WINDOW instruction from responding to AbortScript menu item.
November 29 Script instructions that match window names (e.g. WINDOW, MENU, BUTTON) can now specify that the match should start at the beginning of the window name and/or end at the end of the window name. This is done by beginning or ending the pattern string with a dollar sign ($).
August 26 The Make Shortcut form now opens with the focus set to the Shortcut Name field. Also that form's Default Script Folder field is initialized to reflect the loaded script files. A C++ DLL example was added to the help file.
April 2 Added facility for user extensions to OKScript through access to external routines in OKScript compatable DLLs.
Feb 18 Panel Options discussion and index updated in OKScript's help. Program unchanged.
Feb 14 Three predefined macros were added: -DOCS and -DESKTOP return the path of the "My Documents" and Windows Desktop folders, -EXEPATH returns the path to the folder containing the OKScript program. A buffer overrun error in the Make Shortcut function was fixed. Clarifications were made in the help file.
Jan 22, 2002 The help system was ported from "WinHelp" to "HTML-Help" system which supports much better navigation and development tools. Several of the help topics were rewritten and there were a few additions. Windows 95 users who haven't installed Internet Explorer may need to do so to use this help, or run Microsoft's HHUPD.EXE. Alternatively the old help file (OKS.HLP) will run with the new program. The help development process uncovered a few bugs in the program. 1. An incorrectly worded error message was fixed. 2. A bug in MESSAGE that failed to display multiple lines was fixed. 3. Problems with the pulldown list capability of the GET instruction were fixed.
Nov 10 Added LEFTCLICK, RIGHTCLICK, SAVE and RESTORE variations to the MOUSE instruction as well as a mouse position tool (accessible from the Edit menu) to determine the x-y coordinates of key application elements for insertion into MOUSE positioning instructions.
Nov 1 Added MOUSE WINXYLOW x y for mouse movement relative to the lower left corner of the active window.
Oct 31 Added MOUSE WINXY x y for mouse movement relative to the active window's coordinate system (0,0 = upper left corner).
Oct 30 Instructions and macros for moving the mouse pointer, pressing and releasing its buttons and retrieving its current position were added. The GET instruction was added to the template list.
Oct 5 If an open or save operation selects a different folder, that folder will become the default for subsequent file operations. This does NOT change the default folder on startup, which is (now) controlled by the shortcut's "start in" field.
Sept 27 Fixed problem with shortcut (icon) creation capability in OKScript.
Sept 26 Changed icon.
Sept 9 The option to associate xxx.OKS files with the OKScript application was added to the installation procedure. Minor installation bugs were corrected and a new icon was incorporated into the program.
Sept 5, 2001 The PLACE instruction was corrected so that flawed PLACE parameters no longer cause the panel to be rendered (invisibly) off of the screen. Syntax template insertion for several instructions were added to assist script development. These are accessable under the "Script" menu. The capability to alter the shift metacharacter (from the default "+") was also added, both as a PRAGMA and in the Panel Options dialog. The installation program was updated and operates with a fimiliar Windows program installer interface. Automated uninstallation support is included in the deployment package. The default installation folder was changed to "Program files\OKS40".
Nov 20 User input resulted in numerous revisions:
  • Fixed STATE RESTORE's inability to restore empty macros.
  • Fixed user's macro quote character persistence when a QUOTECHAR instruction is removed from a script.
  • Forced the IF QUERY, MESSAGE and GET dialog boxes to be focused when they appear.
  • Added indirect addressing capability to macros - when a macro reference is preceeded by an asterisk the referenced string is interpreted as another macro reference. Thus if macro aaa contains bbb then %*aaa% will return the contents of macro bbb.
  • Added NUMBER iftype to check if a text string is a legal number.
May 16 Added the capability to programatically minimize and restore the current panel (as an option under the MODE instruction.) Also added an optional alert when FILE instructions are encountered in a script to improve security when trying scripts written by other users. By default this feature is ON unless disabled in OKScript's options. Note - the installation bug present in the initial upload of this release has been fixed.
Jan 17, 2000 Added global option to increase or decrease the font size and button height. Look under Script | Set Panel Options.
Dec 28 Fixed error in PROC description in help file and added button hinting.
Oct 4 Fixed bug introduced in yesterday's release that caused fatal error to occur when executing a 'basic' button or menu instruction - i.e., one with nothing after a button's color spec or menu's name.
Oct 3 Integrated procedure call option to BUTTON, MENU and RIGHT instructions.
Sept 15 Updated many sections of the help file. Program is unchanged.
July 2 Fixed bug in PARSE that produced errors on multi-character delimiters.
July 1 Fixed bug in PARSE instruction and added code to wait for a window activation to take effect before continuing with a script. Also fixed execution problem that occured with the 16 bit version when multiple script files were loaded.
June 15 Ensured that DO events occuring at the same time do not overlap in execution.
May 26 Fixed minor bugs in Colin Ward's scripts contained in OKS3240z.exe.
May 4 & 6 Allowed PLACE instruction to position a panel on a second monitor, if present, on Windows 98 systems. (Applies to 32 bit OKScript only.)
Apr 26 Removed Notepad usage on install to allow setup script to function on non-English versions of Windows. Also clarified areas of the help file, particularly the tutorial.
Mar 18 Removed anomolous behavior of PRAGMA FILEHELPOFF when there are not user menus in a panel. Also cleaned up the help file a bit.
Mar 9 Multiple Ctrl-R's no longer create panels with replicated buttons. Added functionality that allows DO BEFORE or DO AFTER directives to access the activating directive's <window> and <keys> fields. This makes it possible to write one line BUTTON and MENU handlers that perform more complex tasks. One example is to direct and explanation to the opponents AND spectators. This code sends a button's keystring to both the opponents and spectators when any button is pressed:
  DO BEFORE LEFT
    WINDOW %-mywindow%
    PUT =%-mykeys%{enter}
    PUT {%}%-mykeys%{enter}
    MODE OFF keyfield
    MODE OFF windowfield

A typical button that could take advantage of this might be:
  BUTTON (1N)-2H RED OKbridge hearts and a minor
Feb 26 The inability to have more than one menu separator (MENU xxx|-) was fixed.
Feb 21 "End of Line" (EOT/{enter}) delay option now also includes "End of Text" (EOT) case, thus a "PUT xyz" will trigger a delay after sending the "z" event if there isn't an {enter}.
Feb 17 Added HELPOFF pragma (per Colin Ward's suggestion) for those who want to get rid of the Help menu but keep the File menu in their panels. (See Feb 10 below.)
Feb 15 Fixed the functionality of the BUTTON directive's new width argument that was introduced in the 2/10 version of the program. The bug manifests itself when the BUTTON is clicked and contains a window activation name. Sorry for this inconvenience.
Feb 10 Added (optional) width field to BUTTON instruction, allowing a script to easily setup a uniform looking matrix of buttons. Also added another qualifier to LET instruction that expands embedded macro references.
Feb 9 Added pragmas to make a panel's file and help menus invisible (FILEHELPOFF) and inhibit window activation error reporting (WINERROROFF). Also made the editor's F5-F8 recorded strings persistent between sessions. 
Jan 27 Made the new DO features (Jan 26) more robust and improved the help file writeup.
Jan 26 Added capability to execute a common script whenever any button or menu is activated. See DO instruction in the help for details. To make this useful I added a PARSE function (that allows you to take apart menu names, amongst other things) and three predefined macros that return the current event's name (-MYNAME), color (if a button, -MYCOLOR) and checked status if a menu (-MYCHECK.) Also improved the cursor positioning in the editor when an error occurs.
Jan 21 No changes to OKScript. Changed EMOAL startup code so it works regardless of the startup directory. EMOAL now requires the January 12 version (or later) of OKScript.
Jan 19 Added access to CharDelay and EnterDelay (see Jan 12 entry) from the Set Panel Options menu. Refined the code that loads all of the .oks files in a directory.
Jan 12 Added underlining to the most recently clicked button to assist applications that tend to sequence through a series of buttons. Added folder-load capability to OPEN command, including the "*" modifier for file replace. Added CharDelay and EnterDelay items under [SYSTEM] in the OKSCRIPT.INI file.
Jan 9 Disabled assorted script editor menus when they would be meaningless, i.e. when there are no files open. Fixed anomalies in the script editor title bar display.
Jan 8 Allowed macro translation for the arguments to the MODE, LET, TRUNC and ONERROR instructions. Added an IFTYPE for testing the state of a menu check mark.
Jan 6 Added support for controlling the check mark on custom menus. Uploaded beta-2 of EMOAL with corrected instructions.
Jan 2, '99 Fixed editor window caption bug. Also made available a release that includes uninstall support via the Windows Control Panel - Add/Remove Programs feature.
Dec 30 Minor install and help improvements.
Dec 19 Added temporary licensing capability and fixed fault that appeared when incorrect license information was entered into the registration form from run mode. Also made available a seminar distribution that includes additional sample scripts.
Dec 17 Fixed problem pasting (rich) text with different color attributes into an editor page. Also completed update to procedure that performs target window search.
Dec 14 Added the current filename to the script editor title bar, making it easier to uniquely identify (and target) a particular script editor when more than one are running.
Dec 10 Fixed script loading problem that occured when script file specification was a folder or script was not found. Modified window search and activation logic to make it unnecessary to click on a window that hasn't been 'seen' and catalogued by OKScript. Also implemented the predefined macro %-TITLES% which enumerates the window titles currently catalogued (separated by {ENTER}s.)
Dec 8 A problem with quoted target windows in menu directives was fixed. Minor help and cosmetic changes.
Nov 30 Added PLACE to the directives that will be processed in a USEd file. Expanded tutorial. 
Nov 24 Allowed multiple menu separators without PRAGMA MENUSTUBS. Softened the RED color and added PINK, GRAY, ORANGE and SKY.
Nov 19 Added predefined macro -CANCEL which returns "1" when GET is canceled, "0" otherwise. Extended the MENUSTUBS pragma to include both misformed menu specifications.
Nov 18 Added bookmark capability to the editor. Moved most error messages to the editor status bar. Added an optional programmable status bar for button panels.
Nov 17 Implemented all international diacritic key mappings (no unicode). Fixed column bug display in 32 bit version.
Nov 15 Changed PROC argument evaluation to NOT translate metacharacters. PROCs now have to use LET * to perform this translation on arguments, but arguments containing metacharacters can be successfully passed to further PROCs.
Nov 13 Fixed serious bug that caused OKScript to hang when editing with no files open and sometimes on exit. (Must have been anticipating Friday the 13th.) Also added predefined macros to access OKScript's timer (%-TIC%) and the handles (unique IDs) of the window that was active at the last tic and last explicit activation from OKScript (e.g. WINDOW instruction.
Nov 12 Added buttons and menus to items that can appear in a USE file (library.) Improved menu error checking (removable with PRAGMA instruction) and help file. Added editor line and column indicators.
Nov 10 Added functionality to expand metacharacters in LET command macros. Activated with LET *mac data.
Nov 9 Added pulldown options list for the GET command. Extended the MODE TITLE string from 40 to 120 characters.
Nov 5 Added MODE TITLE instruction to change a panel's title. Made metacharacter usage more consistent.
Nov 3 Added long line continuations with the MORE instruction. Fixed rare bugs in CALL, DELAY and FINISH instructions and Abort_Script! menu logic.
Oct 31 Changed OPEN *fn to replace already loaded script instead of adding another script.
Oct 28 Added external PROC and MACRO facility (USE), editor size options (up to 512k), improved diacritic support and longer MESSAGE capability.
Oct 22 Added forced load to OPEN instruction. Added -PANEL predefined macro.
Oct 22 Extended support for international keymappings.
Oct 21 Added support for some 8 bit diacritic characters and minor user interface refinements.
Oct 19 Added MODE command (to disable MENUs and BUTTONs) and an iftype to test a control's enable status.
Oct 17, '98 Fixed literal metacharacter (e.g. {+}) problem. Further improved button 'look and feel.'
Sep, '98 Version 4.0: Many improvements including:
Reorganized menus.
Added Newline menu for plagiarizing and removed special NEWLINE palette button.
Added DO, PLAG and PRAGMA directives.
Added LET, TRUNC, PARSE, FINISH, ONERROR, FILE, DIR, STATE, MESSAGE, MODE and WAITFOR actions.
Added QUERY, RUNNING, EXISTS, MENU and BUTTON iftypes.
Added parameter facility to PROC/CALL.
Added integer formulas.
Added rollup argument to PLACE directive.
Added error recovery to TOPANEL.
Eliminated need to click on a window for OKScript to 'see' it.
Changed undo from alt-BkSp to Ctrl-Z.
Improved button right click look and feel.
Changed IF instruction syntax.
Moved the /m, /s, /t, /c and /f switch functions into the OKScript menus and .INI file.
Removed ".OKS" from editor tabs, other extensions continue to be displayed.
Removed TIME, DATE and CLIPTOMAC actions.
Predefined macros: -date, -time, -clipboard, -tic, -ticwin, -actwin, -titles, -curdir, -args, -argn, -indexup, -indexdn, -found, -exe, -err and -res.
Fixed plagiarizing and CapsLock anomalies.
Fixed user menu related memory leak.
Fixed fast keystroke playback problem in editor.
Sep, '98 Version 3.5: Added one level of editor undo.
Added replace option to text search.
Added MENU directive.
Added optional 'next panel' parameter to the CLOSE action.
Inihibited OPEN instruction from loading same file more than once.
Jul, '98 Version 3.4b: Added macro expansion to the BUTTON directive's color parameter and the parameter of the CLIPTOMAC and CALL instructions.
Removed parameter quoting in WINDOW, OPEN and TOPANEL instructions.
Fixed directory binding error for file operations.
Improved help structure.
Jun, '98 Version 3.4a: Added editor search and keystroke record/playback.
Added TOPANEL instruction.
Added /N switch to set the title bar caption.
Replaced /R switch functionality with /E switch.
Imporved help file.
Added desktop shortcut menu function (32 bit only).
May, '98 Version 3.3l: Corrected bug (introduced in 3.3k) that inhibited macro expansion in window names.
May, '98 Version 3.3k: Added {%} and {QC}.
Forced GET dialog edit control to always be active.
Properly restore buttons from canceled program exit.
May, '98 Version 3.3j: Fixed implementation of tab display parameter in PLACE directive.
Added /T command line switch to inhibit the display of runtime tabs.
Improved editor to notebook tab coupling and button control implementation.
Mar, '98 Version 3.3i: Fixed syntax check and beautify code so it properly recognizes blank lines.
Feb, '98 Version 3.3h: Fixed window flash when exiting OKScript with multiple files open.
Jan, '98 Version 3.3g: Fixed bug affecting the interaction of the STARTUP, OPEN and CLOSE instructions at compile time.
Jan, '98 Version 3.3f: Added nesting check and ELSE with condition capability.
Jan, '98 Version 3.3e: Added Beautify function to the edit menu.
Jan, '98 Version 3.3d: Fixed bug that made program 'lose' the help file.
Jan, '98 Version 3.3c: Improved CALL instruction performance.
Forced STARTUP to be action execution terminator.
Fixed PROC implementation bugs.
Jan, '98 Version 3.3b: Fixed horrible flaw that caused OKScript to lock up.
Jan, '98 Version 3.3a: Added control flow instructions.
Fixed failure to plagiarize on new instructions.
Jan, 1998 Version 3.2b: Added OPEN and CLOSE instructions.
Added macro persistence.
Fixed 'stay on top' problem with GET instruction.
Fixed clicking on unpopulated part of form fault.
Dec, '97 Version 3.2: Added secondary button scripts via right mouse button.
Improved plagiarize mode access.
Fixed sporadic synchronization problem that occured when a RUN instruction was followed by a WINDOW instruction.
Dec, '97 Version 3.1a-e: Minor bug fixes and interface enhancements.
Dec, '97 Version 3.1: Added code to remove trailing blanks when a file is read or processed.
Added feature to allow user to remember window position in a script.
Allowed user to switch button panels via the editor tabs.
Added script building from button palette features.
Dec, '97 Version 3.0: Added integrated script editor.
Simplified scripting language - one line button scripts.
Switchable button panels via editor tabs.
Oct, 1997 Version 2.1: Fixed initial 'flash' in 32bit version.
Added keyboard navigation capabilities.
Fixed LOADSCRIPT functionality.
Refined code that tracks active windows.
Included sample script file.
Changed to Mijenix's ZipMagic(r) self extracting installation shell.
Dec, '96 2.0 Release added clipboard and data manipulation instructions
Oct, 1996 Initial 1.0 release.