The Button Enhancer Bible & great button config tips for Opera Mobile / Mini users
By Werner Ruotsalainen, Submitted Wednesday, October 17, 2007
Back in early 1997, when the first Microsoft WindowsCE 1.0-based devices hit the selves, they already contained shortcuts to built-in programs. Back then, as the 1.0-series of WindowsCE exclusively ran under clamshell Handheld PC’s with a built-in keyboard, it was pretty easy to find place for these quick start keys. For example, in the Philips Velo 1, the entire number row is overridden with them, providing access to almost all major applications (Pocket Word, Excel, Calendar, Contacts, Tasks, WWW, Inbox, Database, Calculator, Voice Memo) delivered with the device.
When, in 1998, the Palm-size PC’s and, in 2000, Pocket PC’s arrived, the lack of a built-in real keyboard meant it was no longer possible to crunch as many buttons in the radically reduced front and side surface of the device. Therefore, the number of shortcut keys were substantially reduced; most devices only sported five of them. There were differences in both directions: for example, the HP iPAQ 2210 only had four, while the Fujitsu-Siemens Pocket Loox 720 had six and, what is more, these buttons were all bifunctional: press and hold them instead of just quickly pressing it, and another functionality starts. (Some models, for example, the h2210, also supports something like this – holding the buttons results in, in general, creating new records. However, unlike with the Pocket Loox, you can’t redefine the functionality if you want to access something different.)
Unfortunately, very few models support bifunctional (short-press and long-press) buttons. While some device manufacturers (like HP with their WM5 upgrade for the HP iPAQ hx4700, introducing full support for press-and-hold front buttons) did realize the ability to double the functionality one can quickly access with a single button press(-and-hold), not even the latest mainstream models offer this. For example, HTC’s Pocket PC Phone Edition (Windows Mobile Professional) models, in general, only offer one application (app for short) button with double functionality (for example, Button 4 on the Universal and the Wizard); all the others are single-function and, therefore, greatly reduce their usefulness and the flexibility, should you want to greatly speed up invoking applications or greatly simplifying tasks (for example, by a hardware button-initiated macro playing back several pre-recorded stylus taps to, for example, greatly speed up mail checking).
Some of the current models even more reduced the number of (redefinable) buttons. For example, the HTC Elf / Touch only allows for redefining the Camera button and nothing else (also see THIS). Yeah, only ONE button. Nice, eh?
The hardware manufacturers’ neglecting the need of people wanting for more functionality assigned to the few hardware buttons of their Pocket PC’s (and, due to the, in general, far fewer application buttons they have, to a lesser degree, MS Smartphones) has resulted in a plethora of third-party solutions that do allow for this. In this roundup, I explain and thoroughly compare these all.
This kind of a Button Enhancer Bible has long been awaited. Except for some not very recent (pre-WM5) and, now, completely outdated quick reviews & comparisons, there has never been a really decent and thorough comparison of the major button enhancers, let alone ones that cover even the latest (2007), kick-butt, freeware titles developed by some highly skilled XDA-Developers folks.
1.1 What can you expect of button enhancers?
As you can see, there are the following possible configurations:
- (Sometimes heavily) extending the number of applications you can start / tasks you can do with a hardware button by adding at least press-and-hold mode to the already-existing “short press†one. The vast majority of the enhancers add three additional states and there is one (HButton), which goes even further and lets for adding an unlimited number of different invocation capabilities to a button.
- They, in general, contain widely asked-for goodies missing from the Windows Mobile operating system like a task manager (to quickly switch between running tasks), a task killer (to completely get rid of it to make sure it doesn’t take up any memory or other system resources), sometimes fancy, full-screen clocks (as opposed to the tiny one in the upper right corner) etc. Note that you can freely download utilities like these. The most important repository of these free, but highly useful, single-purpose, small utilities is that of PHM PowerToys. The single-purposedness of these small applications also means these tools can be directly assigned to a hardware button (this is exactly what PHM Keys does). This also means that, if the particular button extender you select doesn’t have built-in for example Reset functionality (which can be very useful when assigned to a button, should you need to soft reset your device several times a day; a well-known situation for users of Resco Audio Recorder, which, in many cases, (at least on the Pocket PC platform) requires a reset after resuming the device and/or reinserting the sotrage card it should record to), you can always make use of Reset.exe of PHM PowerToys. Incidentally, still speaking of the built-in Reset support of the reviewed button enhancers, none of them does prompt the user before resetting the device. Therefore, to avoid resetting resulting from an unwanted button press (you, for example, press it three times instead of twice and this triggers an unconditional soft reset), you may still want to prefer PHM’s version of Reset to the ones built into these button enhancers. The case is pretty much different with the built-in task managers. In general, they’re better than that of PHM because you will have the time to select the task you’d like to switch to and, with the best task manager implementations, you can fine-tune its parameters.
- Some (currently, two; one of these, buttonMax, still not being WM5+-compliant, doesn’t run on current Windows Mobile devices) of them let for defining application-specific shortcuts. These can be VERY important and useful. Just one example of this (which, also, explains where thee kinds of shortcuts can prove really useful): Opera Mini (OM4 for short), with the latest, 4-series, has become a serious contender to all the other Web browsing solutions on out platform. Many even consider OM4 to be THE best Windows Mobile (WM for short) Web browser, particularly with a decent MIDlet manager (the environment to run MIDlets like OM4) like Esmertec’s Jbed. OM4 (along with the still active 3-series) had, before the just-released beta 2, a very important problem: it doesn’t let for switching between full screen and non-full screen mode unless you have a built-in hardware dialpad or keyboard on your phone or, depending on the MIDlet manager you use (some, like Jblend, don’t support switching between the two screen modes using the on-screen keyboard; others like the, for running OM4, most recommended Jbed, can), can be bothered to bring up the on-screen keyboard to make the switch. If nothing works (you don’t have any kind of dialpad or keyboard and the on-screen keyboard isn’t supported by the particular MIDlet manager, you’ll need to find external ways of sending the “*†(or, in cases, the “**â€) character(s) to OM4 to do the switching. It’s here that scripting solutions like MortScript come into picture: you just create a MortScript file containing a Sendkeys() function call, and just assign this script to one of your hardware buttons. After this, upon pressing the button, a *(*) will be inserted into the active program; if it’s OM4, then, it’ll force it to switch between the two screen modes. (Which, unfortunately, won’t work under the above-mentioned Jblend either, for reasons I’ll elaborate on in my forthcoming MIDlet Bible). Fortunately, with the latest beta, you can already get rid of the problem by going to Settings and make the changes yourself; but, again, this won’t help with the previous, 3.x-series still widely in use for the time being, that is, before the 4-series of Opera Mini leaves the beta status. In addition to the full screen mode switching, OM4 has a lot of dialpad (numeric) key goodies like quick (page) up/down scrolling (as opposed to the default, line-by-line scrolling) when you use the 2/8 hardware buttons / keys. If you don’t have a handheld with these buttons / keys and you don’t want to open / slide out the keyboard (if it exists at all) to press 2 / 8 (the vast majority of Pocket PC’s, except for Asus’ phone models having a hardware dialpad, belong to this category), you’ll certainly welcome a solution that does the trick for you. That is, either an external program, tied to a hardware button, which you can invoke to send a 2 or 8 character to OM4, or a button handler, which itself can send your OM4 these shortcuts (for example, PQzII). Yes, that’s at least two numeric key simulation functionality worth binding to a hardware key. And, if you would like to also bind the other, very useful numeric key-only shortcuts (see the complete list of them HERE, in the Opera Mini column) to hardware buttons, even more buttons would be needed. If you bind these buttons to be active system-wise, then, you will quickly use up the really meager number of button configuration capabilities and you won’t really be able to make use of these configurations in any else program, where you won’t really need to enter, for example, 2 or 8 through a hardware button. This is (one example of) where application-specific button assignment can really pay off. You just use a button enhancer that is able to handle separate apps and only use button assignments with the defined one. Note that, currently, not all applications can be treated this way. For example, as far as MIDlet managers are concerned (still sticking to the Opera Mini example), only those of Esmertes (Jeodek, Jbed) and TAO (Intent) will work. IBM’s J9 won’t work in app-specific mode (if at all: half of the devices I’ve tested it on keypress emulation wouldn’t work at all) and Aplix’s Jblend is the worst: it immediately pauses when you try to send something (for example, an emulated button press) to it. As VITO ButtonMapper, currently, doesn’t support sending out emulated keypresses (as has already been mentioned, it’s only PQzII that is capable of this feat), it must use an external tool (for example, MortScript) to generate keypresses, this means you in no way can send them to Jblend. Your only choice is PQzII, but the latter doesn’t allow for application-based, separate button assignment. Another example of a program that cannot be used in separate, filtered mode is Opera Mobile 8.65, where using the numeric keys also greatly enhances the usability. This means you won’t Many other WM programs, however, can be used in this “sandbox†model; therefore, VITO ButtonMapper still remains the number one button enhancer app to test when you want to have app-specific button assignments. Please note that I’ll also elaborate on these issues in the “Hands-on experience: Passing keypresses to Opera Mini / Mobile†section. In there, you’ll get an even more thorough explanation of these questions and will also be presented some ready-made scripts.
- Some add keyboard shortcut emulation. The most common of this is adding copy / cut / paste / select all emulation (for clipboard operation) and Tab, Enter, ESC, Cancel, Page up/down for cursor movement emulation. The, in this respect, best utility, PQzII, even supports defining any of the available alphabetic characters to be input. The latter, as has already been stated, can prove VERY useful with applications like Opera Mini and Mobile.
- The most advanced ones (for example, again, PQzII) allow for assigning functionality like quick dialing a number or selecting a pharse to be inserted in the text (which is, otherwise, only supported by commercial tools like Resco Keyboard Pro in its “Frequently used phrases†mode)
- Also, advanced apps also allow for stylus (but, currently, not button) macros; this is currently supported by two button enhancer applications. There are a lot of advantages of the support for this; see for example the “Scenarios for using with ButtonMapper†section in the VITO ButtonMapper manual.
- 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.
| KVM / You MUST use this button enhancer to be able to pass… | Numeric chars (but NOT # / *) | Any chars, including * and # |
| Esmertec Jeodek | Any with MortScript or VJKeyPress; or, PQzII without anything external (no MortScript or VJKeyPress needed) | Any with MortScript |
| Esmertec Jbed (the best MIDlet manager out there) | See above | See above |
| TAO Intent | See above | See above |
| IBM J9 | On devices that do support external apps like MortScript or VJKeyPress, any; otherwise, PQzII ONLY | On devices that do support external apps like MortScript, any; otherwise, impossible |
| Jblend | PQzII only | Impossible |
- Any (including the default, system-level Button applet without any third-party button extender) button extender along with either MortScript or VJKeyPress to send any chars (with MortScript) or numeric chars (with both MortScript and VJKeyPress) to the MIDlet
- PQzII to send numeric chars to the MIDlet: the only choice when you use Jblend or, in some cases, IBM J9
- As opposed to what I've stated, it’s possible to override the Internet Explorer button on the keyboard of the HTC Universal; see THIS. However, it’s not known whether it’s possible to do the same with the also hard-wired Messaging button.
- There are some very nice and useful uses of the more advanced button enhancers; for example, passing Page Up / Down. If you’ve ever used water’s SmartSkey (one of my favourite tools), you know it has redefined (in addition to the WM5 softkeys) the volume slider of the Wizard / Universal on the non-Today / non-Phone screen to send Page Up / Down events to the active program. This can be overly useful in programs like Web browsers. To find out whether the tested apps are able to do so, check out the “(Additional) keyboard / D-pad emulation?†and the “Volume buttons / slider redefinable?†rows. The latter show whether the slider / volume buttons can be redefined. Of course, if they can’t be, you can still send PgUp/PgDn events to your apps – just assign them to another (supported and existing) hardware button. Also see THIS for more user reports / opinions on this feature.
- I’ve added a new row, “Does it override (ignore to take into account) the global lock setting?†on the behavior when locked. As the vast majority of the button enhancers use their own code to access the buttons, some of them (for example, PQZ) doesn’t adhere to the locked state and will, therefore, execute the assigned app even in locked state, which isn’t necessarily what you want. See for example THIS for more user posts / opinions on this matter.
- Werner Ruotsalainen's blog
- Login to post comments
Printer-friendly version




Thanks, posted the info in the update.