1.3 Issues; problems when using button enhancers
Some of these applications aren’t without problems.
First, as some of them are always running (because it adds significant functionality not possible to handle via the standard button assignment functionality, which only executes the given program when the button is pressed), there is a remote possibility they will take up a lot of system resources; most importantly, CPU time and memory. Fortunately, this isn’t the case: all the apps that do have a resident, always-active module have little system resource usage. There was only one app that had enormous (over 800 kbytes) memory usage: the original PQz, of which PQzII is the greatly enhanced version with dramatically reduced memory usage (see THIS for more info on the differences if interested).
Second, as they might be too selfish, they may mess up the local (or, default) button assignments made in for example multimedia applications. Almost all media players and remote media controllers offer the capabilities of locally assigned buttons (for example, TCPMP in Options / Settings / Select page / Hot Keys; Resco Audio Recorder 4 in Action / Options / General / Buttons etc.) For example, if you assign a button to, say, fast forward, stop or switch off the screen, this setting may collide with that of button enhancer applications, which might result in funny and/or unwanted consequences.
While there are no such problems with the built-in button assignments or any application that solely uses the infrastructure already available in Windows Mobile (that is, applications that don’t have a resident memory module), the vast majority of apps do interfere in at least some of these applications. Actually, it’s only the two non-resident apps (namely, DoubleLauncher and HButton) that have absolutely no problems working together with these kinds of applications.
I’ve made several tests to find out the most problematic programs. To represent a standard multimedia player application, I’ve used the hugely popular TCPMP. This application has a, by default, disabled option of “unhooking” buttons so that global, system-level button settings don’t interfere in the program (because they can’t be used). In addition, I’ve used the latest Resco Audio Recorder series, which is known to have even more serious problems with almost all the programs running in resident mode: either the buttons that are redefined / reassigned in the button enhancer stop working, or the globally defined functionality is executed half of the times and the local one in the other half. Finally, three apps (buttonMax, BtnPlus and Vito ButtonMapper) even require to be completely restarted after exiting Resco because they just stop working. In the Chart, it’s in the “Overrides local keyboard assignments?” section that I’ve elaborated on these issues and the problems. As can be seen, PQzII is clearly the worst application in this respect because it even messes up TCPMP – even when you do enable button unhooking in the latter.
Other problems arise from models and / or buttons already supporting press-and-hold (that is, double) functionality; for example, the above-mentioned Pocket Loox 720 or the WM5-upgraded HP iPAQ hx4700. If you try to use a button enhancer app with hold mode, the two hold modes (that of the operating system and the enhancer app) can clash, as was the case with the TCPMP / Resco case outlined above. In order to find out how the applications behaved under these situations, I’ve also made some serious tests on my WM5-upgraded HP iPAQ hx4700. In general, it can be stated if the given enhancer application supports press-and-hold functionality, this functionality won’t work with buttons also having native support for this. As button enhancer apps relying solely on press-and-holding (HButton) can ONLY work when assigned to a button not having native Hold support, you will only be able to assign HButton to Button 5 on the hx4700.
This all means press-and-hold functionality will not work if the OEM's button driver already implements multiple keypresses or press-n-hold.
In addition, press-and-hold usually doesn’t work for red/green phone buttons, WM5 softkeys and the Ok button (when available) because the system returns both the "key was pressed" and the "key was released" events simultaneously right after the button was actually released so enhancer apps that, otherwise, support these buttons (for example, AEBPlus) are not able to decide if it was a long (press-and-hold) button press or not.
It’s on purpose that I’ve emphasized I’m speaking of individual buttons and not devices themselves. For example, on the hx4700, the Record (fifth, side) button doesn’t have a Hold mode; therefore, with external button enhancers, you can also use their Hold functionality, unlike with the other four app buttons. That is, you can use the hold functionality on devices that do have buttons without at least one non-hold key.
2. The reviewed button enhancer apps
2.1 PQzII (Keyboard Helper) 0.0.7b 20070725
This is a very-very advanced, free utility, mainly for users of handheld devices with a real keyboard built-in, but, as it also supports traditional application buttons, other Pocket PC users can also make use of it.
There are several versions of it: a generic WM2003 and WM5 (which is tailored for the HTC Universal, but can be run on any other WM5+ Pocket PC (phone)), one for the HTC Wizard and the HTC Hermes. While, currently, there are no specific versions for other / newer devices, once you learn how the configuration files are built up, you’ll easily make one.
It allows for redefining / overriding any buttons (even the two phone buttons, the D-pad arrows and the two WM5+ softkeys). Note that, on the Universal, the pretty useless Internet Explorer key (the one in the lower left corner of the keyboard) can’t be redefined (see THIS); the same stands for the Messaging shortcut (close to the IE key).
The main discussion thread of PQzII is HERE and the (pretty simple and hard-to understand) official documentation HERE.
What I recommend is that you don’t let the very bad set-up interface and the substandard docs of PQzII chase away. Once you learn how it can be configured, you’ll love it and find it one of the most powerful utilities, particularly if you also have a built-in keyboard (it supports a lot of, on desktop PC’s, well-known keyboard shortcuts like copy/paste, CTRL+LEFT = HOME, CTRL+RIGHT = END, CTRL+UP = PAGE UP, CTRL+DOWN = PAGE DOWN etc. – all a god-send for everyone editing / typing a lot of texts on his or her handset). Let me, again, recommend the mini-tutorials in the chart, which will give you immense help in discovering the capabilities.
Note that you can even enter ANY Unicode char with ALT keys; a related post is HERE showing other solutions & consequences.
Note that there is a similar product, AE Keyboard Mapper (also known as AEKMap), which I do not review here for several reasons:
- it doesn’t support application buttons, unlike PQzII, and, after all, the subject of this Bible is application button redefining, not that of built-in keyboards.
- you need to activate (=pay for) it to get, with button enhancers, basic functionality like assigning applications to an alphanumeric key. With PQzII, you get the same functionality for free.
- the same developer, Alexander Eltsyn, also offers a product, AEBPlus, solely meant for application button enhancement and is far more powerful in this regard that AEKMap. I will review it in this Bible.
2.2 HButton 1.9.1
This is a revolutionary, outstanding application in that, unlike all the other reviewed tools, it lets you assign any number (!) or applications to a single hardware button. Before you ask what the point in all this is, and whether it’s indeed easy to remember that, for example, the particular app you would like to start is at the eighth or the ninth postion, the answer is really reassuring. When you keep the selector (hot) button depressed, it scrolls through the titles of the apps you’ve assigned to that particular button. Whenever you see the program you would like to execute, you simply release the button and it’s started. (There are variations of this theme. For example, you can solely rely on the very quick and discreet vibrations or beeps; if you keep counting them, you’l know when to release the button to start the particular app.
It has other goodies too. As its “virtual” buttons need to be manually assigned to the hardware buttons of your handheld in the system-level Buttons applet, there is no in-memory resident code taking up resources / CPU time all the time and/or interfering with some apps having local button assignments (see the discussion of TCPMP and Resco Audio Recorder). However, the need for an additional, manual step to assign these virtual keys certainly make the configuration lengthier and, at first, a bit harder to understand. Nevertheless, once you get a picture how this all work, you’ll just love it.
All in all, an excellent application, well worth using, particularly on Pocket PC’s with a severely limited number of available, configurable buttons (for example, the HTC Elf / Touch).
2.3 AE Button Plus 2.6
This utility, having come from the same author than the already-mentioned and famous AEKMap, is alos very strong. In addition to its strengths on the Pocket PC platform, it is unique in that it’s the one and only tool to support the MS Smartphone (Windows Mobile Standard) support. Note that the well-known SmartToolkit (of which a new beta has just been released) also offers some button reassining capabilities, but only lets for simple press operations, as opposed to AE Button Plus. As it still has some quirks and, no matter how nicely it redefines the start menu, you won’t necessarily want to use it (for example, I uninstalled it after a while because of the speed problems in accessing the Start menu – I’ve just found the traditional of selecting my (current) apps way considerably faster), I don’t discuss it separately in here. I will do this as soon as it receives better button support and/or a stable, non-beta version is released.
This is without doubt THE most powerful button enhancer application when it comes the built-in goodies like switching on the built-in camera LED to work as a torch (not compatible with current MS Smartphones, unfortunately), connection starting/stopping etc. (See their almost complete list in the “Additional utilities” row of the “Compared to Settings / Buttons…” group of the chart). Granted, most of these hacks are invented by XDA-Developers hackers and programmers (for example, well-known vijay555) but you will need to install several additional apps to achieve the same. With AE Button Plus, you get all this built-in, without the need for installing and configuring several tools onto your Windows Mobile device. This itself – and the very low price tag – also makes this tool really appealing.
This application sits resident in the memory (with the definite disadvantages coming from this fact; for example, it certainly clashes with both TCPMP and Resco Audio Recorder but, fortunately, not so bad as PQzII).
Finally, a BIG request to all software developers and hackers: as with HButton and PQzII, I didn’t know of this application before embarking on writing this Bible either. With PQzII and HButton, this is pretty understandable as HButton is a brand new project started late Spring and PQzII was almost only discussed in a single HTC Universal thread (in a device-specific forum). Needless to say, none of the three apps were entered into the Software Encyclopedia of Smartphone & Pocket PC Magazine by the developers. This, and the fact that they have been only discussed in not widely known subforums is why I haven’t nominated them for this year’s Best Software Awards (they ALL would have deserved the nomination.) Therefore, my humble request to ANY Windows Mobile developer & hacker out there is the following: if you feel you’ve written a tool worth mentioning / paying attention to, don’t hesitate to contact me via a private message on any Windows Mobile forum. I’m using the nickname “Menneisyys” on all of them and you definitely will find me as I’m a top poster on all Windows Mobile forums. DO send me a message when you have something up your sleeves – you’ll get a lot of promotion for free and your app may even get nominated for the Awards, generating even more promotion, if I find your app is worthy enough. And it’s all free for you, with little effort – just a private message, with a link to the thread of your product and a sentence like “Please check out my latest tool, you might find it useful”. This particularly applies to hobbyist developers like the one of all these three apps. It’s almost impossible to run into their apps unless you excplicitly read thorugh hundreds of related threads because they don’t register their stuff in on-line software directories like the PPCMag Encyclopedia (and, in there, in the Utilities / Button Enhancers category. )
2.4 Vito ButtonMapper 4.0
This is one of the very few apps that have a really decent and easy-to-grasp manual. Its particular strength lies in its stylus macroing abilities and, what is even more important, the application-specific button assigning capabilities, in which, currently, is unique. (The other button enhancer app to do offer the same capabilities, buttonMax, currently (as of 10 / 16 / 2007) still isn’t compatible with WM5 and later operating systems, which means it’s useless on the vast majority of currently used handhelds.) Therefore, it’s highly recommended if you do need app-specific configurations – for example, number input for Opera Mini (more precisely, the MIDlet manager running Opera Mini) etc.
Don’t forget that, as has already been pointed out, the app-specific functionality doesn’t work with some programs; most importantly, Opera Mobile (as opposed to Opera Mini, which works just great together with Vito ButtonMapper when running under a compatible MIDlet manager – all MIDlet managers of Esmertec, TAO and, on some Windows Mobile models, IBM J9 – but not with Jblend). This, as has already been pointed out, is very bad news for all Opera Mobile users. If you plan to use Opera Mobile and want app-specific button assignments only active when running Opera in the background, you simply won’t be able to do this with the current, final version of Opera Mobile 8.65. Sorry. This is definitely not a bug in Vito ButtonMapper as the other, app-specific-capable app, buttonMax, can’t run Opera either (I’ve thoroughly tested this under WM2003).
As has also been mentioned, stylus tap emulation macros can also prove really useful. As has already been pointed out, you will want to read the “Scenarios for using with ButtonMapper” section in the VITO ButtonMapper manual for some examples of how this can be utilized.
All in all, I highly recommend Vito ButtonMapper, particularly if you need either app-specific settings or stylus macros (or both). If you don’t need these functionalities at all, you may also want to check out the free PQzII, HButton or AEBPlus – they have different capabilities and may turn out to be better suited for your needs.
This app, in addition to HButton, is the only app NOT to have an in-memory module but uses the default button handler, which is advantageous in some cases (see for example the cases of applications with local keypresses – for example, Resco or TCPMP). Otherwise, it is clearly inferior to the best, most recommended, and, what is more, free apps: PQzII, HButton or AEBPlus. As it doesn’t support app-specific settings either, it is inferior to VITO’s app, which costs the same.
Therefore, I only recommend this app if you MUST use an app that, as with HButton, uses the built-in Button handler infrastructure because of the incompatibility of other button enhancers with your specific apps having local button assignments. Otherwise, you should go for something better and/or free.
2.6 BtnPlus 0.21
(direct LZH link)
This is a long-abandoned project not really working on any WM5+ devices I’ve tested it on. Therefore, you may only want to bother with using it if you have an SH3 Pocket PC 2000 device (a HP Jornada 525/54x). It has an English language tutorial for example HERE.
2.7 buttonMax 2.10
This app, as of the (current) 2.10 version, doesn’t have support for WM5, which is a pity because, otherwise, it’s a real capable button enhancer with the same unique capabilities as VITO’s app.
2.8 Verdict – which one to choose?
The answer is pretty simple: one of the PQzII, HButton, AEBPlus (which are all free; you can, of course, activate AEBPlus but the vast majority of the functionality is available even without doing so) or the commercial VITO ButtonMapper. As these four apps have distinct feature sets, you must yourself decide what features you need and what you don’t. For example, if you only have one configurable button (and don’t want to override for example your phone / softkey buttons with AEBPlus) but want to assign at least 4-5 programs (or, in a broader sense, any functionality) to it, your best choice is HButton. If you need either stylus macros or app-specific button assignment capabilities, your only choice is VITO ButtonMapper (unless, of course, if you have a pre-WM5 device. Then, buttonMax may also be a nice choice.) If your handheld also has a built-in keyboard, you might find PQzII the best. Finally, in addition to its being one of the best Pocket PC button enhancers, MS Smartphone users will want to use AEBPlus as there’re no other button enhancers compatible with the platform.