Macro Scheduler's Scripting More Powerful Than the Name Implies
At a Glance
Macro Scheduler 13 ($95, 30-day free trial) is a powerful tool for automating complex processes under Windows. The name "Scheduler" is a bit of an undersell; while it has all the scheduling and control options you could want, in my opinion, the real selling point of this program is that it's a complete development environment for scripts. It includes an array of tools to make code generation easier while not tying the developer down to a small set of pre-determined options.
When a user first opens Macro Scheduler, they will see a list of predefined macros, most of which exist only to show off some feature of Macro Scheduler or serve as code examples. It's fairly telling that double-clicking on an item, the most common thing a Windows user does when presented with a list, launches the program editor rather than executing the macro--Macro Scheduler lets you know up-front where it's head's at, as it were.
While there is a macro recording feature that will monitor and record your actions, and while there are number of wizards that make editing particular code functions much easier, it's very unlikely, in my opinion, for someone who is not already at least a part-time programmer to get full use out of Macro Scheduler. So much of what you can do with the program is bound up with its robust language features that you'd miss out on most of it if you ignore or can't access them. At the same time, I'm sure some experienced programmers will note that they could use other languages with appropriate OS hooks to duplicate what Macro Scheduler gives you--but you'll spend time reinventing the wheels that Macro Scheduler provides from the get-go.
The programming language used by Macro Scheduler is a slight variant on Visual BASIC, and uses very familiar constructs for loops, subroutines, and so on. Anyone with experience in any mainstream procedural, imperative, language will quickly pick up the straightforward syntax. You'll spend most of the learning curve studying the extensive list of functions, as there is very often a high-level function call that can replace a lot of low-level code. (For example, you easily write a routine that gets all the files in a directory and then loops to find the most ancient .jpg file... or you can use "getOldestFile>c:\my pictures\*.jpg,oldPicture".) Fortunately, the program functions are all clearly organized and integrated with the script editing window, along with wizards that help you fill in complex parameters, such as the multiple options available to model mouse motion. Manually specifying all the options for "click here, move there while holding down shift, then double-right-click with ctrl-alt pressed" is much harder than using the wizard to generate the code, which you can then hand-edit as needed.
Some of the noteworthy features of Macro Scheduler include the ability to capture text from windows (which you can them programmatically parse), compare bitmaps for similarity, and produce fairly robust interactive dialog boxes.It has a somewhat more robust programming environment than some competing programs, such as AutoHotKey. AutoIt is comparable or superior in coding strength, but is not as focused on organizing/running macros.
There are a few downsides. Some things are not as intuitive as I would have expected, such as identifying controls within a window. The documentation is adequate, but not outstanding; I would have preferred more contextual examples of function calls, especially those with several options and parameters. One last thing: While the range of functionality of Macro Scheduler has expanded greatly since its initial 1997 release, it looks very much as if the interface design has not. It's an irrational reaction, but if a programs look and feel is highly dated, it can be hard to accept that it's capable of handling modern system requirements. Under the hood, Macro Scheduler 13 has been constantly updated to deal with ever-increasing file and disk sizes, system speeds, and so on.
The thirty-day trial provides full functionality, easily enough to evaluate Macro Scheduler and see if it meets your needs.