I have, over the weekend, "ported" most of my menus and hotkeys etc. from PowerPro (PP) to AutoHotkey (AHK) (and I can tell you, my wife doesn't like AHK:-)). I think the syntax of the script language is in places rather funny, but this seems to be the same with all script languages.
I would say that, right out of the box, PP does more and does it more accessibly. Most things can be done with AHK as well (sometimes indeed better or more efficiently than in PP) but this invariably needs some extra work whereas in PowerPro the stuff (as far as it goes) simply works. Sooner or later you'll need the scripting language in PP as well, but many things have a rough but adequate user interface or a high-level command which hides most of the legwork.
Menus are a case in point: PP shields the user from the drudgery of actually handling the menu choice: you simply define the menu options and the actions linked with every option and that's it. But in the end that's not such a big deal, as most of the code needs only (re-)writing once. As I am not uncomfortable with script languages there's no problem. But the fact remains that PP is probably more newbie friendly than AHK. (By the way, all this is meant as constructive criticism, not as the starting point of a flame war about the best keyboard enhancement utility.)
And there is one feature in PP (filemenus) that I think would make for a great addition to AHK (see further down).
So, by and large, the process was relatively smooth. There are some small open points which probably need some more digging in the help file but in general almost all went fine. There is, so far, one glaring exception, a real show stopper, to do with windows losing focus (see the other thread).
Here are a few things in the would-be-nice-to-have category (if I am not making myself clear feel free to ask):
* PP has something called filemenus. A filemenu is a simple text file that can be displayed as a menu:-). The menu entries are connected with a string that is sent to the active window (see my problem above). The whole thing looks like this:
Mail&1=xyz.blabla@mail1.com
Mail&2=abc.blabla@mail2.com
Mail&3=nomail@mail3.com
&krt=Kind regards{enter 2}Thomas
&www=world.wide.web
&etc=et cetera...
So basically they are hotstrings without a hotkey, instead they are activated via a menu which in turn can be shown with a simple command upon pressing a hotkey. The beauty of it all is that you only need to define your menus in simple text files and off you go, no code to write, nothing. I am sure that one could write a script which does something very similar semi-automatically. But having such a feature out of the box is really nice (and would be nice for newbies as well).
* PP maintains a clipboard stack in which the last n texts seen by the clipboard are kept. I know there are utilities out there for this but they are much too bloated for what I need. Again one could probably write a script...
* PP can execute the contents of a variable as a script (which makes possible some amazing things). One could simulate that by writing stuff into a file and executing it but that's would not be too efficient, I imagine.
* A case statement would be nice. Okay, that's just syntactic sugar as a succession of if/elses can do the same but it makes for slightly more compact code.
* Mouse locations: not just x/y coordinates but also "logical" places like "in the left/right half of a window", "over the caption", "over the system menu", "over the minizime/maxizime button" etc.
* WinTitle parameters (for WinWaitActive etc.): more flexibility, ie. wildcards like "*Notepad" etc. Perhaps even regular expresssions?
* Regular expresssions would also be nice in the search routines. (One can always dream.)
* Commands which use WinTitle: another parameter which temporarily sets SetTitleMatchMode (having to set this script-wide is way to inflexible and bracketing stuff with SetTitleMatchMode commands gets cumbersome after a while)
* Sometimes (always?) path- or filenames need not be enclosed in "" even if they contain spaces. Okay. But what about filenames with a comma or a semicolon in them? Example:
#Include This filename contains a semicolon ;.txt ;try to load "This filename contains a semicolon ;.txt"
doesn't work. This example is contrived but I have lots of filenames (for instance, MP3 stuff) with commas and semicolons.
* Something esoteric: in PPro the command "Exec Explorer *" opens an Explorer window which shows the working directory of the currently active program. There is no obvious way how to get the working directory of a program in an AHK script so I don't see how that can be done in AHK.
What I miss most are the filemenus and the automatic clipboard handling. And there may be a few more things popping up, as I continue my explorations.
To sum up so far: I think that AHK is more stable, faster and better integrated into the OS than PP, for one thing. Also, compared to PP, the update cycle for AHK seem pretty short (does Chris ever sleep?). On the negative side is it's lack pre-packaged things (which may be a design feature. of course).
But once I can do (almost) everything I used to do with PP with AHK I will gladly rid myself of PP.
Any thoughts?
Regards Thomas
PS: Sorry for the long post.