Macros
Note: For advanced users of Macro Express or if you have nothing better to do.
During the fall of 2006, I did some testing in the Unicode version of the WorkFlows Java Client. In the end, the Libraries decided not to move to this version until some future date. Thus, the information provided in this document may certainly be outdated in the future as changes are expected in future versions of a Unicode-based WorkFlows. As of December 2008 we are using a non-Unicode version of Symphony WorkFlows.
As of December 2008, Macro Express version 3.xx and previous versions are not Unicode-compliant. It isn't known at this time if future versions will be. However, after some testing, there are things you can do with Macro Express involving Unicode characters.
A basic text-typing macro isn't any different than typing in the text yourself from the keyboard. Macro Express will have no problems with running macros that do just this in a Unicode-based product.
This is where things start getting tricky. Macro Express will be able to identify any character in a string of text as long as the characters are the same as those found in the ASCII character set. The decimal values from 32 to 126 happen to have the same character assignments in both ASCII and Unicode, so whether it is a Unicode-based product or not, Macro Express can identify these characters without a problem.
It starts getting messy when trying to identify characters that are beyond decimal value 126. This is because the decimal values in the Extended ASCII character set do not match up with Unicode's Latin-1 Supplement. With testing it appeared that Macro Express could identify most of these characters. However, if your macro needed to make use of the ASCII values of these characters, it was not able to identify them at all. I would discourage users from writing macros that use characters that would be within Unicode's Latin-1 Supplement, unless they only plan on creating text-typing macros that make use of Macro Express' symbol table.
Macro Express will not correctly identify these characters. For characters that contain combining diacritical marks, Macro Express will pick up the character being modified by a diacritic (for instance, an s with acute, Macro Express will identify as just an s). For all other characters (as far as I can tell at the time of testing), Macro Express identifies these as question marks, and also assigns them the ASCII decimal value of 63.
Since Macro Express is not a Unicode-compliant program, how can it type a Unicode character? The answer to this is that you can type Unicode characters directly from the keyboard and since Macro Express is good at pressing keys, in a roundabout way it too can type in Unicode characters.
There are actually two different ways of doing this. The most common method is by holding down the Alt key, typing in a zero followed by the decimal value of the Unicode character on the number keypad, and then releasing the Alt key. This works especially well in applications like Microsoft Word. However, during testing, Unicode-based WorkFlows only accepted Unicode characters up to decimal value 255 using this method. Higher than this value and nothing happened. Perhaps future versions will address this problem? [Penn State University Libraries may start testing a Unicode-based version of WorkFlows in 2009].
The second method, a more universal way of doing this, is by typing in Unicode characters using their hexadecimal values. This can be accomplished by holding down the Alt key, pressing the + key on the number keypad, then typing in the hexadecimal value on the regular part of the keyboard, and finally releasing the Alt key. One catch to this is that this won't work for all computers because a value needs to be set in the Windows registry (see the next section below).
A third possibility is having Macro Express access an Input Method Editor (IME). I unfortunately have very little experience using an IME, so I won't comment on this.
This section is only for users that know what they are doing in the Registry Editor. Make sure you back up your Registry before beginning. For the casual user, I highly recommend that you DO NOT edit the Windows Registry because you can really mess Windows up if you do something stupid.
If you do know what you are doing, in Windows XP, under HKEY_Current_User/Control Panel/Input Method, set EnableHexNumpad to a value of 1 and make sure the type is set to REG_SZ. This value may be completely missing, so you may need to add a new string value. After making the change, the computer should be restarted in order to get it to work. I cannot comment on doing this in Windows Vista because we are not using this system yet in the Libraries.
Microsoft Word is Unicode-compliant. If you know what you are doing, you can get Macro Express to open Microsoft Word in minimized mode with a command-line parameter that runs a Microsoft Word macro. Microsoft Word macros are written in Visual Basic and have no difficulties handling Unicode characters. If you use Macro Express to simply copy some data into the Clipboard and then call Microsoft Word and have it manipulate the Clipboard and store its results in there, you will have the ability to correctly identify Unicode characters.
Over several months when I had some free time from cataloging, I did some testing of this and did manage to get this to work in some degree. Two problems presented themselves: it's complicated and it's not easy getting the whole contraption installed on other users' computers. So, instead of spending too much time on this, I abandoned Macro Express and started writing AutoIt scripts instead, simply because it supports Unicode.
I don't know. I submitted an enhancement suggestion to Insight Software Solutions. Time will tell.