Macro Express News

May 19, 2009

You have received this message because you are subscribed to the Macro Express News email list. To unsubscribe or to change your email address visit and click on the 'subscribe or unsubscribe' link.


1 - Macro Express Pro v
2 - Support for 64-bit processes
3 - Large Integers
4 - Sample Macro: Convert Highlighted Text
5 - Tip: Timed Delays vs Delays
6 - Tip: One Key hotkey macro: Use ShortKeys
7 - Tip: Understanding Global and Local variables in Macro Express Pro
8 - Past issues of the Macro Express News

 1 - Macro Express Pro v ME Pro

Normally we send an edition of the Macro Express News with each new release of Macro Express or Macro Express Pro. However, v was released shortly after v so we decided to only send one edition of Macro Express News for both versions. Macro Express Pro v is now available From

Changes include:
  • Fixed a problem in the control commands with partial titles.
  • Vista's UAC dialog is displayed less often when preferences are changed.
  • The 'Match Case' shortkey option now works with the Use Suffix option.
  • The 'Reload Macro Express Preferences' command no longer causes a crash.
  • Large values can now be entered in Large Integer variables.
  • Fixed a bug in the 'Clear Control Cache' command.
  • Fixed a bug where the 'Set Focus' command did not work.
  • Inline comments no longer display ampersands as accelerator underlines.
  • Added support for 64-bit processes.
  • Added the ability to use variables in the 'Goto' command.
  • Fixed problems with indenting in the script editor.
  • Fixed a conversion error in the 'Wait for File Ready' command.
  • Fixed a memory leak in the 'Macro Run' command.
  • Fixed the CONFIGFILEPATH advanced installation option.
  • Fixed a bug where the 'Import' dialog would appear offscreen.
  • Fixed a bug in the window title activations.
  • Fixed a crash that occurred when using the 'If File Attribute' command.
  • Fixed a crash that occurred when re-sorting the recycle bin.
  • 'Variable Set From File' can now save the dates to a Date/Time variable.
  • Fixed a bug with capture macro requiring a hotkey.
  • Fixed a crash when backing up while Windows is shutting down.
  • Long 'Multiple Choice Menu' commands now return unique values.
  • Fixed a bug with 'Variable Set String: Prompt for Filename'
A complete list of changes is available at: and

 2 - Support for 64-bit processes ME / ME Pro

Macro Express and Macro Express Pro will run on 64 bit versions of Windows XP and Vista but there are some limitations.

Macro commands and features that access the process name (something.exe) cannot interact with programs written specifically for 64 bit versions of Windows. Window titles of these 64 bit programs are accessible but the process names are not.

With this release, Macro Express Pro is now able to include 64 bit processes and interact with them in commands such as 'If Program', 'Program Launch' and 'Terminate Process'. Further, these are also available in program specific scope and all Window Controls functions.

We will add this ability to Macro Express 3 when it is updated later this year.

 3 - Large Integers ME Pro

Integer variables are useful for saving numeric information that does not include decimal values. Performing math with integer variables can be more accurate than math using decimal variables. The method used by computers to store decimal values results in approximations, not exact values, for large decimal numbers. Because of this, rounding errors creep in to calculations with decimal variables.

Math using integers is always exact. But you have to take into account that fractional amounts are discarded. The main limitation with integers is that each integer variable is 32 bits in size. This limits integer numbers to values between -2147483648 and 2147483647.

Macro Express Pro now includes the new 'Large Integer' type of variable. These large integers support numbers between -9223372036854775808 and 9223372036854775807. Now you can have the advantages of using integers with much larger values.

 4 - Sample Macro: Convert Highlighted Text ME / ME Pro

Al Willen sent us a macro that takes any highlighted text and gives the end-user the option of converting it to either all lowercase, all uppercase, or initial caps (i.e. The first letter of each word is capitalized). Al said "Although the macro seems simple, it is the only routine I know that conveniently can make initial caps of any sentence. I use it for movie or CD/DVD titles."

Versions are available for both Macro Express 3 and Macro Express Pro. Visit for more information.

We will send Al a Macro Express T-shirt to thank him for sending us this macro.

 5 - Tip: Timed Delays vs Delays ME / ME Pro

There are two types of delay commands that can be used inside a macro. The 'Delay' commands run code that loops while waiting for the time to expire. This loop can use a lot of CPU cycles.

The 'Time Delay' and 'Time Elapse' commands tell Windows to put Macro Express to 'sleep' for the specified amount of time. In this state Windows does not give Macro Express any CPU cycles. This type of delay uses very few CPU cycles.

Of course there is a trade-off. Because Macro Express is 'sleeping' when you use the 'Timed Delay' or 'Time Elapse' commands, you cannot halt the macro by clicking on the Macro Express icon or by pressing the 'Abort Macro HotKey'.

If you want a long 'Time Delay' using relatively fewer CPU cycles and you want to be able to abort the macro, you could use a Repeat loop. For example, suppose you want the macro to delay for 10 seconds. You could use a 'Time Delay' of .25 seconds but have the Repeat loop perform the 'Time Delay' command 40 times. The amount of delay time is the same, but you would be able to stop the macro at least every quarter of a second.

The 'Delay' commands are 'Delay: seconds' and 'Delay: milliseconds'.

In the Delay dialog in Macro Express Pro the 'Timed Delay' commands are listed as 'Timed delay in seconds' and 'Timed Delay in milliseconds' These are displayed in the Script Editor as 'Delay: seconds, without ability to halt' and 'Delay: 1 milliseconds, without ability to halt'.

In Macro Express 3 there is only one 'Timed Delay' command called 'Wait Time Delay Seconds'.

The 'Time Elapse' command in Macro Express Pro is called 'Wait for Time to Elapse' and 'Wait Time Elapse' in Macro Express 3.

 6 - Tip: One Key hotkey macro: Use ShortKeys ME / ME Pro

Occasionally we are asked how to assign a macro activation to a single keystroke, for example the J key. The hotkey logic excludes regular keystrokes because it could get confusing. Just imagine, what could happen if every time you pressed the J key a macro ran. However, if you absolutely need to do this, you can using the shortkey activation logic. Here's how.

In the ShortKey Preferences select the 'Use Prefix Keys' option and delete the keystrokes from the 'Keys' field. Then create a shortkey macro using the J key as the shortkey.

We strongly recommend that you set the Scope of this shortkey macro to limit it to a specific program. Otherwise, every time you press the letter J your macro will run.

Note that after setting the 'Use Prefix Keys' option along with a blank 'Keys' field, all shortkey activated macros will run without requiring prefix keys. You may get around this by adding a prefix to the shortkey macros themselves. For example, if you currently type ##kh to run a macro, the shortkey for your macro is probably 'kh'. Change the shortkey to '##kh' and remove the prefix keys. You can still run your existing macro by typing ##kh, but now you can also run the new macro by pressing J.

This tip applies to both Macro Express and Macro Express Pro.

 7 - Tip: Understanding Global and Local variables ME Pro

New with Macro Express Pro is the option to determine if a variable is 'Global' or 'Local'. This choice is made by selecting the 'Make this variable available to macros called by this macro' option when a variable is defined.

As your collection of macros grows, you may have a set of macros that perform specific functions that you use over and over again. These functions are placed in individual macros and 'called' using the Macro Run command.

Often these macros require variables that are only used within that macro and are not needed outside the macro. You may, for example, use a variable named %Idx%. This can cause problems, however, if you attempt to use %Idx% in one of your main macros and in a called macro.

This is the perfect use for Local variables. To create a Local variable uncheck 'Make this variable available to macros called by this macro' when defining the variable. The %Idx% variable in your called macro will not affect the %Idx% variable in your main macro.

Global variables are available in the macro where they were defined and in all macros called from that macro via the Macro Run command. This is the way variables worked in Macro Express 3.

It is not a good idea to define a variable in a called macro and expect it to be available in the main macro.

More information about the scope of variables and how to share information between different macros can be found in the Variable Scope knowledgebase article:

 8 - Past issues of the Macro Express News

Are you a new subscriber to the Macro Express News email newsletter? Did you miss an issue? Past newsletters are available online at

Comments and Suggestions

We welcome customer feedback. Let us know what you like and dislike about Macro Express. Send questions, comments and suggestions:

Insight Software Solutions Home Page:

Macro Express Home Page:


  Insight Software Solutions, Inc.
  PO Box 106
  Kaysville, Utah 84037-0106

Thank you,
The Macro Express Development Team

Press Kit | Resellers | Affiliates | Contact Us | Site Map | Trademarks | Privacy
Copyright © 2017 Insight Software Solutions, Inc. All rights reserved.
Insight Software Solutions, Inc. Home Page Insight Software Solutions, Inc. Home Page