*POST AND CAB FILE UPDATED 2/18/07 TO REFLECT USE OF BLANK PATH VALUE*
PPC6700 = $549.99
Voice Command 1.6 = $39.99
Working button 5 = Priceless!
If you're not interested in my long-winded explanation for how I figured out the solution just scroll down to the
Solution section below.
Alright, I know this issue has been irking Apache users ever since MS blessed us with the otherwise excellent version 1.6 of voice command. I actually came upon the solution to the button 5 problem by accident back in the VC 1.5 days when you had to manually add a registry entry in order to get VC to work over BT. That registry entry (a string value called "Path" in HKLM\Software\OEM\VoiceCommand) is what allowed voice command 1.5 to take over the BT headset button from the built-in Cyberon app. You changed that path to point to the voicecmd.exe instead of sddialer.exe and it then changes the app that gets called when you press that button.
One day about six months ago I was setting up my 6700 after a hard reset and noticed that I could not assign button 5 (remember this was in the VC 1.5 days). It drove me crazy because I always re-assign that as my voice command button. Eventually I got some time and went through all of the reg tweaks I installed from my extrom one by one, with a hard reset in between and discovered that I had made an error in that Path value (had put in extra quotes). As soon as I corrected that entry, voila... button 5 worked normally again.
Flash forward to VC 1.6. When everyone was having problems with button 5 I remembered my previous experience and I thought I had messed with it to try to solve it. I guess I didn't try hard enough because I was looking at it again today and saw the very obvious problem staring me right in the face--that "Path" string value gets deleted by the VC 1.6 installation. It is not examined by the OS until you soft reset though so you'll notice that after you install 1.6 button 5 works fine until you soft reset.
So, create a string value called "Path" and leave the path blank or put in the path to a valid exe file on your device. Then soft reset. As long as the path you put in there goes to a valid file then you'll notice you've regained full control of your button 5. If you choose to put in a path to an exe file you will find that it launches when you press the button on your BT headset. For example, if you put in the link to sddialer.exe (the Cyberon app) then both it and voice command will get launched when you press the BT headset button. I can't think of any reason you would want to do this, but if you have a reason then that is how you do it.
The previous solution (making the path to \Windows\rundll32.exe) is no longer necessary since a blank path works just the same. Although calling rundll.exe should not cause any harm, it is cleaner to use a blank path. Thanks to dprout69 for that revelation.
SOLUTION:
Use a registry editor to navigate to HKEY_LOCAL_MACHINE\Software\OEM\VoiceCommand and create a new string value called "Path" (no quotes). For the data, leave it blank (or insert a valid path to an .exe file on your system if you want that .exe to run when you press the BT headset button). Then close your registry app, power off your device and then soft reset with the stylus (or whatever method you use to soft reset). The soft reset is crucial. After it comes back up, try to assign your button 5 to something (I suggest voice command!) and see if it works. You should also be able to assign button 5 (press and hold) to something else and it will work too. You will know if you made an error in the path if button 5 still brings up notes despite being set to another program in button settings.
For those who want to save some time or aren't comfortable editing the registry, I have attached a zip file containing a cab file (
updated 2/18/07) you can copy over to your device. The only thing it does is make that single registry entry (using a blank path), and it is removable if you care to remove it someday.
This fix can't be implemented prior to installing VC 1.6 (i.e. in any of the custom ROMs), because the VC installation is what deletes that value. So you will have to make this change every time you install VC 1.6.
I am posting this to ppcgeeks and pdaphonehome. Feel free to post it elsewhere if you want.