A few weeks ago I received an email which read in part:
I’m writing to you to make you aware of WinAutomation (www.WinAutomation.com), our software product (that includes a powerful macro recorder) that helps you automate your repetitive tasks (e,g. files, folder, database, web actions etc), so that you can save time, effort and labor.
In the name of full disclosure, the person offered me a pro version of their software if I’d like to blog a review of it. Actually, they even went further and offered me some licenses to give away to blog readers as well. It sounded like a pretty good deal to me, so I accepted.
Now, before I really give a review on this, I think it’s worth acknowledging that I’m not your typical user. When I feel like automating a task, I typically write the code to do it. I’d also say that the majority of those tasks are inside office, and I do very little in the way of repetitive tasks at the Windows Shell level.
WinAutomation does offer the ability to automate Excel to some degree and has an “Execute SQL Statement” ability to work with databases. Neither of those are any interest to me though, as I’d do both through VBA. I really don’t do any repetitive web actions eitherâ€¦ unless you count opening bookmarks. So what could this offer me?
One thing that I was looking to accomplish was file sharing. I use Windows Live Mesh to write a critical file up from my laptop to the cloud and share it with a couple of people. The problem I had is that this file also needs to exist on the network, and I don’t want to install Windows Live Mesh on my file server. So I needed to come up with a way that I could copy this file to the network every time it was changed. WinAutomation does actually accomplish that need for me.
The interface doesn’t take too long to get used to, and in a short time I was able to knock up the following script:
Long story short, this checks if my network exists and copies the file to the network if it does, or notifies me if it isn’t copied. The script is set up with a trigger to monitor the source file and runs each time the file is changed. And I get a notification popup with the result:
This is pretty cool for me because LiveMesh syncs the file to the cloud, and WinAutomation copies it to my local server. With a Lenovo feature I can run an exe each time I log on to a specific network profile, and WinAutomation can compile the macro to an exe file for me.
Of course, if I don’t want to go the exe route, I can set up a trigger in WinAutomation to monitor the system’s “Application” event log and run the script each time a certain event is triggered. It gets a little tricky though, as you need to find an event that fires consistently after WinAutomation starts up, but it seems to me that the WinLogon 4101 event should work:
I am sorely disappointed in the variables that are offered. In the job above I really wanted to just set the files to variables at the beginning of the routines so that I could check properties of the files. I couldn’t seem to do that, though. For example I set a file into a file variable and a folder to a folder variable. Then I wanted to check if the file existed inside the folder… it was a non-starter, and pretty frustrating.
WinAutomation also has a Macro recorder. I tried recording a macro which:
- Opened Notepad
- Typed in some text
- Opened Outlook
The results are below.
Honestly, I was a little disappointed in this. Maybe it’s because I’m used to using VBA and controlling an Object Model, maybe because I actively avoid using SendKeysâ€¦ I picked Notepad off my “Most Recent” list, so I really wonder what happens when it changes position. Based on what I see below the macro would stop workingâ€¦ I don’t claim to be smart enough to offer a solution though, but then I didn’t write the program.
Recording file/folder actions through Windows Explorer yields the same issues with mouse clicks and SendKeys as those above. I find it a little weird that there is no warning to the potential of failure if the window wasn’t open in exactly the same place.
I can give an example of where the macro recorder is pretty useful though, despite the limitations above. You can set up a keyboard trigger (CTRL + ALT + SHFT + F for example). This worked well for some data entry I had to do when I was fixing a loyalty program setup today. I had to enter a category number and then enter data in about 12 columns for each category. The rub was that only the category number changed, and the rest was consistent data. So I recorded a quick macro, hooked it to the keyboard shortcut and then just had to enter the number and hit the key combo to fill the line. Much better.
The program certainly does have some power to it, and the selection of objects that you can program is fairly large. I didn’t have too much trouble creating jobs through the designer to do most of what I wanted, although working with the variables seemed pretty clunky to me.
The hardest part of working with this software though is coming up with the appropriate trigger for your macro. Here’s a list of the available triggers for completed jobs:
So the thing is that you need to get creative with how you set up the trigger. And what you want may not actually be there, so you may need to look at another route. For example, I thought about setting up one job with a ping triggerâ€¦ but the ping trigger here only fires when the host doesn’t respond. I kind of wanted it where the host did respond. So I’m left hunting for another way to figure out if the server exists.
One case in pointâ€¦ Assuming that you are not using Windows 7 or a Lenovo computer, (both have built in functionality for this,) you may want to set a different default printer when you connect your laptop at home vs work. Creating the actual macro is super easy as you can see:
The real question lies in how you set the triggerâ€¦ one way is shown below:
In browsing my event logs though, it looks like you can have multiple entries in the event log for WinLogon, so maybe it’s better to monitor a specific outcome. This one will kick off each time the Windows license is validated, which I think only happens right after you log on:
At any rate, setting triggers is the toughest part of this program. It takes a bit of getting used to, and can be pretty frustrating when you first start. A little persistence pays off though, and really starts to unlock some deep power.
I went through some ups and downs as I was learning to work with WinAutomation, with it sometimes feeling impossible to make it actually return the true potential it should offer. Building macros is actually very easy using the drag’n'drop interface provided. But the real key is to not give up on the triggers portion and look at things in different ways until you find one that works.
To me the “SendKeys” style output of the macro recorder is a big disappointment, but despite that, it still offers the ability to knock up some quick data entry features in programs that don’t otherwise support any automation. That value cannot be overstated as it can save you tons of time.
The more I work with this program, the more I do find uses for it.
Soâ€¦ would you like to try it? They have generously provided me with 3 licenses to give away.
Here’s how it worksâ€¦
- Send me an email at ken at excelguru dot ca with the following subject: “WinAutomation Giveaway”. (If you don’t get it right, then you won’t be entered. )
- I’ll take all the valid entries received between now and midnight Pacific time on Tuesday, October 27, 2009
- All valid emails within the timeframe will be entered in an Excel spreadsheet
- Each entry will get a RAND function beside their name
- I’m going to sort them, and whomever comes out in the top three wins