Related
I am using the smartkey program to hold the softkeys to enter startscreen.
Now I am looking for an option or a program to copy/paste and to put it under the message button.
Or does anybody knows a program that only gives the option to cut/copy/paste.
With this my phone would be perfectly tunned.
aage said:
I am using the smartkey program to hold the softkeys to enter startscreen.
Now I am looking for an option or a program to copy/paste and to put it under the message button.
Or does anybody knows a program that only gives the option to cut/copy/paste.
With this my phone would be perfectly tunned.
Click to expand...
Click to collapse
If the context menu of the program contains copy and paste, you can hold the center key of the 5-ways navigator to popup the context menu.
water
Hi Water,
Thanks, but not all programs have that option. That's why I like to have a program like that.
Right now i'm using Magicbutton but that doesn't have that function. GSMagic had it but I like Magicbutton better. So now I need the copy/past function.
You can try Xbar which is under the D-Pad. It opens up a screen in which you can select the running task but also shortcuts to programs of your liking and there are shortcuts ready for copy and paste and cut.
Wouter
You can use PQz to map a hardware key (I use the Windows-key) to CTRL, so that you can use ctrl-c, ctrl-v etc.
http://forum.xda-developers.com/viewtopic.php?t=33343&highlight=ctrl
I think... just speculating here.. that they are more looking for...
press button - it copies whatever is the active selection
press button again - it pastes whatever is on the clipboard
Not sure, though... ctrl+c / ctrl+v works with the SIP, with that tool it works with the hardware keyboard, and if you're working with the sip - and thus a stylus - you can often just tap-and-hold and choose copy from the context menu.
PHM Keys comes with cut copy paste.
Use a button mapper to do as ZeBoxx says, if it's what you need, and you'll have quick access to said functions.
V
Thanks,
I'm using PQZ now. With TAB as CTRL. WIN would not work together with smartkey, because hold button 1 is the same hex number as WIN.
But this program is realy good.
My Solution to this...
I have a slightly hacked up copy of PHM Keys (couldn't get it to install on my 8125, so I hacked it off of a WM2003 device) that I'm using to solve this problem.
In my Start Menu I have three icons - "Object Copy", "Object Cut", and "Object Paste" (PHM Keys) so whenever I have something highlighted I click my (smartskey modified) Start Menu soft button, scroll down a slot or three with the 5-way, and select the copy/cut/paste operation I need.
When the KB is open it's even quicker Start-o Start-b Start-j respectively. Another plus is this works in nearly EVERY situation where you can highlight something. Sometimes the other options (context menus, SIP kbds, etc.) don't work everywhere.
Now some may not want to waste three Start Menu slots, but I have Tray launch filled with my apps, still have 4 Start Menu slots available, and all my non-soft buttons are mapped to one app or another, so I'm cool with them.
Plus I have my SIP pop-up KB completely disabled (I hate it's "intrusiveness" and only use the HW KB in landscape mode) so in portrait mode I had *NO* way to copy/cut/paste and had to devise something.
Good Luck
-JMS
I've updated VJKeyPress to add -cut, -copy, -paste.
On my website.
V
Hi all,
i would like to share with you a utility i have written to help me with my PDA.
Mainly (as the name says), with this utility different programs can be started by using the keys of the PDA.
Its like an extension of the hotkeys but without impacting the hotkey usage.
I have included one more utility which i use together with the hardkeymenu called cscommandline.
Information is included in the cscommandline-spec.txt.
This utility can turn on/off the bluetooth, set the global volume to a value, set the ringer volume to a value,
set the ringer script to a value (this enables the vibration during the alert of calls etc).
I have tested it on a TyTn with WM6 but it should work under WM5 as well.
Link for the whole package is at:
http://rapidshare.com/files/84951586/hardkeymenuv32.zip
>>>>>>>>>>>>>HARDKEYMENU
Usage
-----
Hardkeymenu extends the usage of hot keys:
Its possible now to assign any program (.exe) or registered file to be executed with a
combination of user defined key strokes.
It provides feedback (picture/sound/vibrates) of the options selected.
The program works as follows:
Once the hardkeymenu is executed, it will read the hardkeymenu.dat and wait for keystrokes.
The program if it finds within the same directory the file hardkeymenup.jpg (when in portrait)
or hardkeymenul.jpg (when in landscape) will use it as a background picture. Otherwise, it will
use the current desktop as a background picture.
If any matching sequence is found, then the relevant description (or picture if present) will be displayed.
If the user does not press any other key, then the relevant sound will be played (if present), the corresponding
program/file will be executed and hardkeymenu will terminate.
If no matching has been found, it will wait for 7 seconds and if no key is pressed it will exit.
If the nomatch.jpg picture is present then it will be displayed otherwise it will display
the key sequence.
The hardkeymenu can be assigned to a Hot-key for quick start up (usual Registry setting,
for example: HLM\SOFTWARE\Microsoft\Shell\Keys\40C7)
Setup/StartUp
---------------------
Setup
-----
The combination key sequence and command can be created by running the setup option.
This option appears when clicking anywhere on the screen while the program is running
and a popup menu will appear with the relevant 'Setup' option.
Through the Setup screens,
- the 'Description' to be displayed when the key sequence is found, can be set. If there is a file with the
same name and extension .jpg then it will be displayed instead.
- the 'Keys' (key sequence that is supposed to trigger the command that follows), can be captured by pressing the relevant
button 'Capture'.
Keys can be pressed and the program will display them for reference. To complete the capturing wait 5 seconds without
pressing any key and the capture screen will exit.
- the 'Command Line' (file to be executed) can be also selected. Pressing 'Browse' will display all files in the PDA and clicking on the
required file will fillin the command line.
- 'Command Parameters' (any optional parameters that might be required together with the command line) can be
keyed in.
- 'Sound', if checked then after selection before executing the 'Command Line', if a file with name 'Description'
and extention .wav will be played.
- 'Vib Scr.', is a script for Vibrating before executing the command. Letter L will produce a Long vibration, S will
produce a short one.
'Description', 'Keys' and 'Command Line' are required, if either is not set then the whole entry is ignored.
Navigation through the total of 20 entries is feasible with the 'Next' and 'Back' buttons.
A whole entry can be ignored by pressing 'Delete'.
Pressing 'Done' saves all the changes (No need to save one by one), 'Cancel' will ignore them all.
StartUp
------
- 'Sound', if checked then if a file with name 'waiting.wav' exists it will be played when the program starts.
- 'Vib Scr.', is a script for Vibrating as soon as the program starta. Letter L will produce a Long vibration, S will
produce a short one.
Installation Instructions
-------------------------
Copy all files provided to a directory of your choice (Including Storage Card).
All files including pictures mentioned must be located in the same directory.
Note:
if the message 'Wrong Version' appears, then delete the hardkeymenu.dat is the latest version is not
backwards compatible with the previous.
Log
----
19-01-2008:
Updated cscommandline to support ringer script.
12-01-2008: Version 3.2
- Added vibration support in the form of a script.
04-01-2008: Version 3.1
- Added Sound support as confirmation
If a file with the same name as the 'Description' and extension '.wav' exists in the directory of the hardkeymenu
the sound will be played as a confirmation while running the relevant program.
- On main screen a count down is showing the seconds left before the program exists if no key is pressed.
- Bug fix
03-01-2008: Version 3 - Added Setup option, stopped using ASCII File.
26-12-2007: Version 2 - A simpler remake of version 1
Below are some screenshots (remember that most of the pics including background can be customized).
Can you post any pics? things will goes interesting only with some screenshots hehe
Pics added,they are from the simulator using my own pics but they can be replaced with any other.
Very nice and unique.
I tied some of the directions on my dpad to some .exe's and got a certificate error? If i link to a lnk of the same .exe it works fine.
It would be awesome if a future version had a easier method of setting up the buttons to the desired path.
Good job Chrisstavrou! Thanks for sharing!
Thanks andason.
It looks like this certificate error pops up only with the first attempt to execute any program.
Is this correct ?
I am trying to figure out why this is happening but it looks that this message comes up when any program is first time executed in the PDA even from explorer.
I am adding a small setup form to help assign the keys as you mentioned.
Thanks
Chris
Version 3 is out
Included the setup option, no need to play around with the ASCII file.
Link has been updated in the first post.
If anyone has any comments etc let me know.
Cheers
Chris
Well another change as when using it, i wanted to hear a sound as a confirmation of what i had finally selected
I have included in the zip file some wav files as samples together with the pictures i am using to turn on/off bluetooth.
Have fun, any comments are welcome.
Chris
Added vibration support.
Changed cscommandline to support controlling of the ringer script
X1BC v1.1
X1 Button Controller
Feb 12, 2009
By Jonathan King​
Description
This program is released open source. Contact me if you would like a copy of the source. The program is capable of capturing both short and long presses of panel key, ok key, L/R softkeys, up/down volume keys, and the win key on the slide out KB. The camera half and full press can also be captured and fully configured for short and long half press, as well as short and long full press. Also, the camera key will be ignored while the camera program is open. Capturing each key is all optional. They can be switched by the registry keys detailed in the next post. By default, if the reg keys are not there, none are captured. You can capture the long press only, short and long press, or leave the key alone. Fn key presses are also detected for A, S, D, F, G, Z, X, C, and V keys. Registry strings are used to specify what happens when the key is pressed. You can choose to open execute anything from a program exe to a mortscript to an mp3. You may also configure it to send a character or special key. This allows maximum flexibility.
The program can also make the win key or tab key a ctrl key. There are two modes of operation for each key. For the win key: Short press mode (short press to enable ctrl then press a letter), Long press mode (press letter while holding ctrl). With the tab key, it is still possible to send a tab character: Short press mode (short press to enable ctrl then press a letter; long press sends tab chr), Long press mode (press letter while holding ctrl; short press sends tab chr).
The program also supports vibrate feedback for a press and hold event. The duration is configurable or this can be disabled. Also configurable is the duration you must hold a key for the long press to occur.
To start the key hook, just launch X1BC.exe. If it is already running, launching X1BC.exe again will end the program and restore the keys to default.
Notes
While the panel key is captured, on the ROM I run with no panels installed I still get a popup saying could not find panelmanager.exe. I am not sure what would happen on a ROM with panels installed. To prevent this all together delete the whole registry key HKLM\Software\Sony Ericsson\PanelManager. You may want to back it up first but there is not harm in deleting it. You do need this key if you want to use panels though. But if you do use panels you dont want to remap the panel key anyway.
Capturing the win key on the slide out KB is tricky, but I think I have done it in a way that wont cause problems. It works well as a ctrl key and I havent had problems with it, but I still think the tab key makes a better ctrl key because it behaves like a regular key and is therefore easier to manipulate.
Disclaimer, use at your own risk. I have tested and debugged in the emulator and on my X1. I dont do anything that I think could really cause any harm or data loss. Has never crashed on me at any point during dev. The program does not make any changes to the system. It just runs in the background. If terminated everything works as it did before the program was started. Try it out.
Registry settings:
The following are DWORD values:
HKCU\SOFTWARE\JKing\X1BC\CapturePanel
HKCU\SOFTWARE\JKing\X1BC\CaptureOK
HKCU\SOFTWARE\JKing\X1BC\CaptureLeft
HKCU\SOFTWARE\JKing\X1BC\CaptureRight
HKCU\SOFTWARE\JKing\X1BC\CaptureVolumeUp
HKCU\SOFTWARE\JKing\X1BC\CaptureVolumeDown
HKCU\SOFTWARE\JKing\X1BC\CaptureLWIN
Here are the possible choices:
0 - Leave the key alone
1 - Capture long press only
3 - Capture long and short press
The default if the value does not exists is 0
The following is also a DWORD but the format is different:
HKCU\SOFTWARE\JKing\X1BC\CaptureCamera
The possible choices are:
0 - Leave the key alone
1 - Capture long and short for half press only
2 - Capture long and short for full press only
3 - Capture long and short for both half and full press
The default if the value does not exists is 0
The following are string values:
HKCU\SOFTWARE\JKing\X1BC\PanelShortAction
HKCU\SOFTWARE\JKing\X1BC\PanelLongAction
HKCU\SOFTWARE\JKing\X1BC\OKShortAction
HKCU\SOFTWARE\JKing\X1BC\OKLongAction
HKCU\SOFTWARE\JKing\X1BC\LeftShortAction
HKCU\SOFTWARE\JKing\X1BC\LeftLongAction
HKCU\SOFTWARE\JKing\X1BC\RightShortAction
HKCU\SOFTWARE\JKing\X1BC\RightLongAction
HKCU\SOFTWARE\JKing\X1BC\VolumeUpShortAction
HKCU\SOFTWARE\JKing\X1BC\VolumeUpLongAction
HKCU\SOFTWARE\JKing\X1BC\VolumeDownShortAction
HKCU\SOFTWARE\JKing\X1BC\VolumeDownLongAction
HKCU\SOFTWARE\JKing\X1BC\LWINShortAction
HKCU\SOFTWARE\JKing\X1BC\LWINLongAction
HKCU\SOFTWARE\JKing\X1BC\HalfCamShortAction
HKCU\SOFTWARE\JKing\X1BC\HalfCamLongAction
HKCU\SOFTWARE\JKing\X1BC\FullCamShortAction
HKCU\SOFTWARE\JKing\X1BC\FullCamLongAction
HKCU\SOFTWARE\JKing\X1BC\Fn_A_Action
HKCU\SOFTWARE\JKing\X1BC\Fn_S_Action
HKCU\SOFTWARE\JKing\X1BC\Fn_D_Action
HKCU\SOFTWARE\JKing\X1BC\Fn_F_Action
HKCU\SOFTWARE\JKing\X1BC\Fn_G_Action
HKCU\SOFTWARE\JKing\X1BC\Fn_Z_Action
HKCU\SOFTWARE\JKing\X1BC\Fn_X_Action
HKCU\SOFTWARE\JKing\X1BC\Fn_C_Action
HKCU\SOFTWARE\JKing\X1BC\Fn_V_Action
Each action key can be one of three types: Execution of a file, sending of a character, or sending of a special key.
To execute a file, the string should contain the full pathname of the file to run. This can be an exe, mscr, lnk, mp3, doc, whatever. Enclose the path and file name in quotes, followed by a space, then any parameters if you desire if it is an executable. For instance:
Code:
"\Program Files\App\My App.exe" -p
To send a character, the string must begin with a # symbol followed by the character to send. For instance, to send a "$" character, they value of the string should be:
Code:
#$
To send a special key, the string must begin with a & symbol followed by the identifier of the special key to send. Here are the special keys:
W - Windows key
R - Rotate screen
Q - Send left softkey event
E - Send right softkey event
What other special keys would you like?
For instance, to send a windows key event, they value of the string should be:
Code:
&W
The following are DWORD values:
HKCU\SOFTWARE\JKing\X1BC\LongKeyTimeout
Delay for long key press in milliseconds. The default if the value does not exists is 500.
HKCU\SOFTWARE\JKing\X1BC\LWINCtrlMode
Here are the possible choices:
0 - Do not use as ctrl
1 - Short press mode (short press to enable ctrl then press a letter)
2 - Long press mode (press letter while holding ctrl)
HKCU\SOFTWARE\JKing\X1BC\TabCtrlMode
Here are the possible choices:
0 - Do not use as ctrl
1 - Short press mode (short press to enable ctrl then press a letter; long press sends tab chr)
2 - Long press mode (press letter while holding ctrl; short press sends tab chr)
(Note, you may use either LWIN or TAB for ctrl. Not both at the same time. If both of these keys are non zero, the tab key will be used. I recommend the tab key. It is more reliable.)
HKCU\SOFTWARE\JKing\X1BC\SupportMultipleKeyHooks
Here are the possible choices:
0 - OFF
1 - ON
The default if the value does not exists is 0. (Please leave as 0 for now. It does not work.)
HKCU\SOFTWARE\JKing\X1BC\HoldFeedbackDuration
Duration of vibration feedback for a long key press. Set to zero to disable. The default if the value does not exists is 35.
HKCU\SOFTWARE\JKing\X1BC\LandscapeOrientation
Set which landscape orientation the "R" special key will switch to. Choices:
0 - Left handed (correct orientation for the keyboard)
1 - Right handed
The default if the value does not exists is 0.
Known Issues:
-Does not support multiple key hooks (not really a problem as this is an OS limitation but see this post for details)
-LWIN long ctrl mode does not work
Changelog:
v1.1 [2/12/09]
-Added special key (&R) for screen rotation
-Added special keys (&Q and &E) for left and right softkeys
-Fixed bug that cause crash if Fn key was assigned to non existent file
-Will now prevent camera app from opening if you reassign camera button
-Changed format of reg settings for camera button
v1.0 [2/11/09]
-Improved WIN ctrl key support
-Added tab key short and long ctrl modes and registry setting
-Added key hold vibration feedback and registry duration setting
-Added capability to capture fn keys. Registry settings added
-Added capability to send character strokes and special keys
-Added capability to capture half and full camera button press. Registry settings added
-Changed default registry values to reflect correct installation directory for other languages
v0.4 [1/10/09]
-Fixed bug that caused extra long key press in one circumstance
-Fixed bug that caused crash during startup if registry strings were not formatted correctly
-Added option and registry value to change long press timeout
-Added short ctrl key feature and registry option for feature
-Added option to allow other key hooks (doesnt yet actually work)
-Now released in CAB format; CAB presets all reg values and creates shortcuts in startup and start menu
-X1BC now ignores keys by default if reg values do not exist, rather than capturing by default
v0.3 [1/07/09]
-Added registry keys for key actions
-Program now performs key actions from settings
v0.2 [1/06/09]
-Simplified reg settings
-Removed all but "exiting" popup during startup and shutdown
-Rewrote key hook algorithm for better reliability
-Unwanted keys now released to system as set by preferences
Todo List:
-Support multiple key hooks
Downloads below. Please note, the cabs will overwrite existing registry settings. If you want to upgrade from previous version, back up the settings first or just replace the exe. The cabs also place a shortcut in startup and in the start menu.
nice!
would look forward for the program when it's officially released
Heh, nice one Jking. I think the best way to go is to somehow "merge" your app with Dande's. Dande doesn't want to create a UI and uses mortscript, where you use the - in my opinion easier - registry. From what I see so far, you both have the same app, written in a different way, with the biggest change being you using the winkey (which I like), and Dande using the tab key.
I'd like to see where this goes, keep up the good work!
All the Best JKingDev, sorry I can't help. I don't know programming.
The biggest shortcoming of the X1 is the lack of buttons for mapping to apps and task manager. I miss the ease of button mapping on my previous i780.
Looking forward to your end product!
Good idea. Looking forward to this app.
cheers
I would love to see an option that would allow these button's to be exposed in the list of assignable buttons in the Buttons Settings control panel (similar to how Tilt developers were able to add the PTT button to it) to allow regular action assignments to those buttons.
Very interested to see how this application turns out!
millercentral said:
I would love to see an option that would allow these button's to be exposed in the list of assignable buttons in the Buttons Settings control panel (similar to how Tilt developers were able to add the PTT button to it) to allow regular action assignments to those buttons.
Click to expand...
Click to collapse
Yeah, me too! But I guess this is on driver level, not sure though!
Edit: I take that back, I remember that AEButtonPlus is able to add virtual keys to that list. But I think you still have to run your application at all time in the background, not really giving an advantage to this. I might be wrong again though.
@JKingDev
I was sending you my code. Didn't expect you to be this impatient
From what I have experienced, using the keyboard hook, it is not possible to remap the panel and the symbol button. Usually you can stop their original functionality to work by returning -1 in the hook, but that doesn't work with panel and symbol. So, at least at first sight, it seems to be not possible to remap these buttons.
You could consider also using RegisterHotKey, which is officially supported by the SDK. Mort told me that he uses it with MortPlayer and it seems to be quite powerful too. Maybe the hook and RegisterHotKey together allow you to do more than just with the hook. I thought that, when you can't do it with the low level hook, there is no other way at all to do it, that's why I didn't even bother trying.
Since you already started a thread in the development phase, maybe you should tell us what you actually plan to implement so that people can tell you in advance what they like about your concept and what they don't. Kind of collecting requirements before coding - like software engineering should be (and not like I did it )
Edit: By the way, in the zip file I sent to you by mail, you can also find a text file which documents the button sequences I was interested in. Helped me a lot while implementing.
Angelusz said:
Dande doesn't want to create a UI and uses mortscript, where you use the - in my opinion easier - registry.
Click to expand...
Click to collapse
First of all, the registry is only some kind of global application configuration database (and a bad idea from microsoft if you ask me). The registry can only enable functionality that is implemented in an application. In contrary to that, MortScript allows you to implement functionality that my application doesn't.
Despite of being completely different things, I don't find fiddling in the registry easy nor secure, but that's another topic.
Ah, and no offense intended, alright
@Jking:
THANKS for this great idea !!
X1 is missing a dedicated REC key
I desperately need this function
One-touch key press to automatically start recording a voice note
Maybe your software will finally let me use my Xperia as a voice recorder
Thank you for all the support! I am glad there is interest in this. It is nice to give back to this great community. New test version. I rewrote the key hook algorithm to handle the win and softkeys in a smoother way. Shouldnt have any prolems now. Now, if you put in settings to not capture a it should be released to the system like normal. Also changed up the registry settings a little bit to streamline the code. Made note of the new format in the second post. Next step will be to actually perform user specified actions when keys are pressed. It will actually become useful.
For some reason, when I set the grab volume key settings to 0 and completely ignore them, they still dont do anything while X1BC.exe is running. I am not sure if this is my app doing this or AEBP screwing with me since I still have it installed. Does anyone else get this problem?
millercentral said:
I would love to see an option that would allow these button's to be exposed in the list of assignable buttons in the Buttons Settings control panel (similar to how Tilt developers were able to add the PTT button to it) to allow regular action assignments to those buttons.
Very interested to see how this application turns out!
Click to expand...
Click to collapse
I believe this can be done since AEBP does it but I am not sure how. I have a slight idea of what I think it does. It involves adding some registry keys then sending custom key codes. I will look into this after I have accomplished everything else I want with this app. Can't make any promises but I will try.
Dandie said:
Yeah, me too! But I guess this is on driver level, not sure though!
Edit: I take that back, I remember that AEButtonPlus is able to add virtual keys to that list. But I think you still have to run your application at all time in the background, not really giving an advantage to this. I might be wrong again though.
Click to expand...
Click to collapse
Yes I think you are correct on this. The only advantage is assigning special keys like <rotate screen> ect. Most of those things you can find exe's for or use a mortscript anyway though, and my app will allow you to specify any exe/mortscript/file to run/open anyway.
Dandie said:
@JKingDev
I was sending you my code. Didn't expect you to be this impatient
From what I have experienced, using the keyboard hook, it is not possible to remap the panel and the symbol button. Usually you can stop their original functionality to work by returning -1 in the hook, but that doesn't work with panel and symbol. So, at least at first sight, it seems to be not possible to remap these buttons.
You could consider also using RegisterHotKey, which is officially supported by the SDK. Mort told me that he uses it with MortPlayer and it seems to be quite powerful too. Maybe the hook and RegisterHotKey together allow you to do more than just with the hook. I thought that, when you can't do it with the low level hook, there is no other way at all to do it, that's why I didn't even bother trying.
Since you already started a thread in the development phase, maybe you should tell us what you actually plan to implement so that people can tell you in advance what they like about your concept and what they don't. Kind of collecting requirements before coding - like software engineering should be (and not like I did it )
Edit: By the way, in the zip file I sent to you by mail, you can also find a text file which documents the button sequences I was interested in. Helped me a lot while implementing.
Click to expand...
Click to collapse
Sorry for my impatience. I had lots of free time and was itching to put my coding skills to work. I have wanted to write a button mapper since I owned a mogul (on my 6700 i used pqzII to make the win key a ctrl mey; i missed this functionality) but I never got around to it.
About the panel key, a key hook is able to detect the panel key presses, but for some reason it is unable to prevent the system from detecting it too like it can for other keys. This is why the work around to delete the panel manager registry key is necessary. Once you do that, the system ignores the key. Hotkeys sounds like a good idea. As it is, it works for me. I can try hotkey later though to see if that works out better. Deleting the panel manager key is an easy work around though if you dont use panels.
Well as far as key functions, you will specify via registry key what file/program to open/run. It could be and exe, mortscript, mp3, whatever. I think that allows max flexibility. Run a program directly, or run a mortscript if you have something more complex you want the key to do. The same functionality as yours, the only difference is that this can also run an exe directly as opposed to writing a script to run the exe.
After that, I want to implement the win key as a ctrl ley. There will be four modes. 1.) Disable ctrl key: allow the ctrl key to be assigned for short and long presses like it is now. 2.) Short ctrl key: Short press + letter sends ctrl key while a long press is mappable like it is now. 3.) Hold ctrl key: Hold + press letter then release sends ctrl key, while short press is assignable to something else. 4.) Full ctrl key: both short and hold methods send ctrl key.
Next I will add FN+key combinations to be assignable the way the other keys are (run exe/script/open file).
After that it will be looking into the suggestions of others such as virtual app keys.
Dandie said:
First of all, the registry is only some kind of global application configuration database (and a bad idea from microsoft if you ask me). The registry can only enable functionality that is implemented in an application. In contrary to that, MortScript allows you to implement functionality that my application doesn't.
Despite of being completely different things, I don't find fiddling in the registry easy nor secure, but that's another topic.
Ah, and no offense intended, alright
Click to expand...
Click to collapse
The purpose of using the registry is not really to make things easier, it is just to make things configurable. You may choose what keys to trap and turn the ctrl key on or off. Mortscripts are very powerful and easy and I still give you the option of using them. But if all you want the key to do is launch a program, why launch a script just just launches a program? I give you the option to just launch that program directly.
New version 0.3. Now the keys are fully functional. The program is actually useful now. The registry keys to set for the key actions are detailed in the second post. All fully functional. I have stopped using AEButton plus now as X1BC does everything AEBP was doing. No more AEBP splash on boot. Now on to what AEBP doesnt do, ctrl key, fn keys, ect.
One caveat though. I figured out what the problem was with the volume keys. I use the HTC Blackstone volume control. It seems certain that HTC volume control as well as you tube, radio, ect use key hooks. Even if I tell my program to ignore the volume keys, pressing volume up will bring up the volume control but after that the volume keys wont change it. The reason why is that once HTC volume control pops up it sets a key hook to control the keys. If my app already has a key hook set, HTC VC will be unable to install its own hook, thus cannot grab the keys. I proved that HTC VC uses a key hook by closing X1BC, launching the VC, then trying to launch X1BC. My app reported as expected that it could not install the hook.
I noticed something very interesting a while ago though. I can launch X1BC even while AEBP is running and it will work. I didnt think much of it but now I realize that this is important. HTC VC works fine even if AEBP is running. AEBP certainly uses a key hook. I can launch AEBP first then launch X1BC. If I first launch X1BC then launch AEBP, AEBP wont work. I think this means that AEBP has some mechanism of supporting a second key hook. Probably the same way hookmgr works. I will try installing that and seeing if it makes the HTC programs and X1BC work together peacefully. Ultimately though, I want to give X1BC the capability to support another program setting a key hook. Not a big deal though. The HTC programs still work. Pressing a volume key brings up the volume control then you can control with your finger.
It is fully functional for mapping the hard keys now! Try it!
@JKingDev
I would still like to know what exactly you plan to build as the application, I mean featurewise. What features and maybe layout do you want the final application to have? It does really make sense to gather feature requests before starting the development of a complex software, otherwise people will always tell you what they would like to have changed. I think you would save quite a lot of implementation effort that way and you also could arrange your architecture a bit to the "final" structure of the application.
Dandie said:
First of all, the registry is only some kind of global application configuration database (and a bad idea from microsoft if you ask me). The registry can only enable functionality that is implemented in an application. In contrary to that, MortScript allows you to implement functionality that my application doesn't.
Despite of being completely different things, I don't find fiddling in the registry easy nor secure, but that's another topic.
Ah, and no offense intended, alright
Click to expand...
Click to collapse
None taken. I'm just trying to add some perspective here. This is a developers site - true. So you can expect some people to be able to work with mortscript - true. But, regardless of any other arguments, there's a lot of users who just don't grasp scripting like with mort's and/or cba to learn yet another language. It's really good to support mortscript, all I'm saying it's nice to have the "easier" and simpler options as well. I will probably get into mortscript soon, too - as soon as university loosens up.
Now, on this application itself - it's looking really good Jking, it would be lovely to have it support multiple keyhooks. Another feature I'd like to see is grasping software keys, like for instance when tapping the clock in TF3D. I'd like to be able to set what that does as well; e.g. remap it to an application or something. Same goes for calender etc. - is your current code able to support that too?
Keep up the great work, this one is starting to look like a keeper!!
(Although I like AEbuttonplus, I read/noticed some downsides about it and would rather replace it.)
Dandie said:
@JKingDev
I would still like to know what exactly you plan to build as the application, I mean featurewise. What features and maybe layout do you want the final application to have? It does really make sense to gather feature requests before starting the development of a complex software, otherwise people will always tell you what they would like to have changed. I think you would save quite a lot of implementation effort that way and you also could arrange your architecture a bit to the "final" structure of the application.
Click to expand...
Click to collapse
Dandie, I am not sure quite what you mean by this. I outlined all the features I plan to implement. The application is in its final structure, I am just still adding features. What more details did you want to know?
Angelusz said:
Now, on this application itself - it's looking really good Jking, it would be lovely to have it support multiple keyhooks. Another feature I'd like to see is grasping software keys, like for instance when tapping the clock in TF3D. I'd like to be able to set what that does as well; e.g. remap it to an application or something. Same goes for calender etc. - is your current code able to support that too?
Keep up the great work, this one is starting to look like a keeper!!
(Although I like AEbuttonplus, I read/noticed some downsides about it and would rather replace it.)
Click to expand...
Click to collapse
Thanks Angelusz. I don't believe that capturing things like tapping the clock in TF3D is possible though. Tapping software buttons does not generate a keyboard event. Only actual keys do. Therefore unless TF3D sends key events for some reason this would not be possible.
JKingDev said:
Dandie, I am not sure quite what you mean by this. I outlined all the features I plan to implement. The application is in its final structure, I am just still adding features. What more details did you want to know?
Click to expand...
Click to collapse
Oh, then I must have overlooked something. What configuration possibilities do you want to offer in your UI, what do you want to offer via registry configuration and what must be done via scripts or additional programs. E.g. what do you want to implement what a powerful program like AEButtonsPlus offers, what do you don't want to offer and what do you want to add to it to make it better. Starting a discussion like this would pop up many good ideas for a somewhat perfect application, you will see.
By the way, a software never is final - unless you declare it final, which basically means you stop the development.
JKingDev said:
Dandie, I am not sure quite what you mean by this. I outlined all the features I plan to implement. The application is in its final structure, I am just still adding features. What more details did you want to know?
Thanks Angelusz. I don't believe that capturing things like tapping the clock in TF3D is possible though. Tapping software buttons does not generate a keyboard event. Only actual keys do. Therefore unless TF3D sends key events for some reason this would not be possible.
Click to expand...
Click to collapse
I think you're right, I have however found a tool that allows me to remap the paths! http://forum.xda-developers.com/showthread.php?t=407777
Dandie said:
Oh, then I must have overlooked something. What configuration possibilities do you want to offer in your UI, what do you want to offer via registry configuration and what must be done via scripts or additional programs. E.g. what do you want to implement what a powerful program like AEButtonsPlus offers, what do you don't want to offer and what do you want to add to it to make it better. Starting a discussion like this would pop up many good ideas for a somewhat perfect application, you will see.
By the way, a software never is final - unless you declare it final, which basically means you stop the development.
Click to expand...
Click to collapse
Well I wasnt planning on making a UI unless people absolutely want to. All my settings are easily changeable in the registry. The second post outlines all the available options. When I add the ctrl key and fn keys there will be options for these too. There will also be an option to allow other key hooks if I get that working. Nothing must be done via scripts or other programs. Simply enter in the registry what file to run or open when the key is pressed. Everyone is free to make requests. There is one request to emulate virtual hard keys and I will try addressing that later. I am not trying to match AEBP. I did this a.) becausse AEBP is a bloated all purpose app; mine is tailor made for the X1, and much smaller and lighter; b.) AEBP costs money; c.) AEBP cannot create a ctrl key or grab FN keys; AEKM does, meaning purchasing another application. If there is something more you would like to see the app do let me know. Otherwise, I have laid out everything that is in the plan already.
Angelusz said:
I think you're right, I have however found a tool that allows me to remap the paths! http://forum.xda-developers.com/showthread.php?t=407777
Click to expand...
Click to collapse
Glad you got that worked out. I thought there would be something of this nature.
Hi JKingDev,
I have tired X1BC for only one button so far (long press ok button to switch to 2nd today). So far everything is working quite nicely.
With AEBP I was facing a significant battery capacity drainage this was for me the main reason to look out for another button mapper. At least in my configuration I was able to reproduce this battery problem (I had 3 buttons asigned with a double click function and the action menue). But this is reported allready (Touch HD forum, because it happens on the Touch HD as well). It is realy a pity, because AEBP is a great application and was the very 1st I was installing on a WM phone.
As long as there is no UI maybe you could do a presetting of all those reg key with a samll cab file? And fill the dword with "0" - I understand that than the key has just its standard behaviour.
Because than I just have to type "only" my individual settings (I am lazy - I know).
For making program starting easier I have the idea to create in the reg keys a path name to a standard link such as
"\Program Files\X1BC\OKLongAction.lnk"
Than I create a new link for the program I want to start, rename it to "OKLongAction.lnk" and overwrite with this new link the one in the standard directory.
This would allow to make changes without playing arround in the regestry all the time.
Best regards & Many thanks for this great tool!
dingolino
Registry settings:
The following are DWORD values:
HKCU\SOFTWARE\JKing\X1BC\CapturePanel
HKCU\SOFTWARE\JKing\X1BC\CaptureOK
HKCU\SOFTWARE\JKing\X1BC\CaptureLeft
HKCU\SOFTWARE\JKing\X1BC\CaptureRight
HKCU\SOFTWARE\JKing\X1BC\CaptureVolumeUp
HKCU\SOFTWARE\JKing\X1BC\CaptureVolumeDown
HKCU\SOFTWARE\JKing\X1BC\CaptureLWIN
Here are the possible choices:
0 - Leave the key alone
1 - Capture long press only
3 - Capture long and short press
The following are string values:
HKCU\SOFTWARE\JKing\X1BC\PanelShortAction
HKCU\SOFTWARE\JKing\X1BC\PanelLongAction
HKCU\SOFTWARE\JKing\X1BC\OKShortAction
HKCU\SOFTWARE\JKing\X1BC\OKLongAction
HKCU\SOFTWARE\JKing\X1BC\LeftShortAction
HKCU\SOFTWARE\JKing\X1BC\LeftLongAction
HKCU\SOFTWARE\JKing\X1BC\RightShortAction
HKCU\SOFTWARE\JKing\X1BC\RightLongAction
HKCU\SOFTWARE\JKing\X1BC\VolumeUpShortAction
HKCU\SOFTWARE\JKing\X1BC\VolumeUpLongAction
HKCU\SOFTWARE\JKing\X1BC\VolumeDownShortAction
HKCU\SOFTWARE\JKing\X1BC\VolumeDownLongAction
HKCU\SOFTWARE\JKing\X1BC\LWINShortAction
HKCU\SOFTWARE\JKing\X1BC\LWINLongAction
Hi, This is my First Post to XDA. After using TP2 for 2 months, I just got my new HD2. Its a great piece of Hardware but I immediately notice following things:
1. The Standard Task Manager that used to sit at Top Right Corner is no longer there.
2. All Settings->Personal->Buttons does not have any Button Listed. So, I cannot assign a Task Manager to Hardware Key.
After investigating, I could find that the Task Manager that find from "Settings"->"Other"->"Task Manager" is located in \windows\taskmgr.exe
This is not a Bad Task Manager but I needed to assign this to a Hardware Key.
Following Registry entries will allow you to bring up the "taskmgr.exe" when you perform a Long Press to Send Key (Left Most Hardware Key on HD2):
Go to in registry:
HKLM\Software\Microsoft\Shell\
Create a new Key: Keys
Inside "Keys" create another Key: 40C6
Inside "40C6" create following Registry values:
1. Name= Name value= Send key(Hold) type=string
2. Name= Icon value= \windows\SendKeyIcon.exe, 0 Type=string
3. Name= Flags value= 0 Type=dword
4. Name= default value=\windows\taskmgr.exe Type=string
Now restart. This is working great for me.
or just use Duttys Task Manager for Leo which adds back the task manager to the top right of home screen and very nice it is too
snapworx said:
or just use Duttys Task Manager for Leo which adds back the task manager to the top right of home screen and very nice it is too
Click to expand...
Click to collapse
I used Dutty as well. It gives back the Lost Task Manager from TP2. However, I also need a ATL-TAB type task switcher.
rezaulkabir said:
I used Dutty as well. It gives back the Lost Task Manager from TP2. However, I also need a ATL-TAB type task switcher.
Click to expand...
Click to collapse
Try this
http://forum.xda-developers.com/showthread.php?p=1700898
I don't know about assigning it to keys though. May be something in the registry to assign buttons?
A much simpler way to run something from a long press on the send key is to make a shortcut to the app and rename it to "long_send". Then, copy it to the windows folder.
Hi all,
I'd like to map another key for a long press. For example the Windows logo hardware key. What is the code for this ? I only know 40C6 for the call key.
Thanks.
johncmolyneux said:
A much simpler way to run something from a long press on the send key is to make a shortcut to the app and rename it to "long_send". Then, copy it to the windows folder.
Click to expand...
Click to collapse
Man, that is brilliant! I thought I was going to have to install AE buttons to achieve this! thanks heaps.
johncmolyneux said:
A much simpler way to run something from a long press on the send key is to make a shortcut to the app and rename it to "long_send". Then, copy it to the windows folder.
Click to expand...
Click to collapse
If "long_send" exists, I cannot answer incoming call with this key.
Is it possible to assign a long press action to "home" or "Windows" key? What will be the right filename? It seems not possible with HD2 after seraching the forum.
Thanks.
Thanks!! This registry tweak works like a charm!
Trick with long_send.lnk doesnt work for me...
Another keycode is 40C7 for Endkey.
Does anyone know how to make this work on a bluetooth headset?
I'm trying to get cybertron Voice Commander to fire up on a long press of the send button on my bluetooth headset.
I've put a link to the app in /windows and named it long_send. The send key on my HD2 opens the app but the headset key doesn't?
Any idea why?
Regards
Clive
johncmolyneux said:
A much simpler way to run something from a long press on the send key is to make a shortcut to the app and rename it to "long_send". Then, copy it to the windows folder.
Click to expand...
Click to collapse
That is great!
Any other shortcuts for at least one of the HD2 keys (Home, Back, Win)?
Since I just ran into a problem with the long_send way of doing things, I thought I would add what I encountered.
I have just bought pocketshield, and wanted to have a task manager on a long send key function. Changing copying a shortcut to \windows and renaming it long_send worked great, until I power cycled. At that point the long_send disappeared, and I had to redo the shortcut trick.
I figured something was deleting it, so I used total commander to change the shortcut properties to a system read only file. This worked for the long_send function, but it broke my task manager...
So, I deleted the long_send shortcut, rebooted, and the task manager worked again, so it seems there is a conflict. I ended up using the registry hack from the first post to get it working.
Cheers!
An easier approach... You can assign any volume key long-press to the task manager(or to any program), with Volumex software
Volume keys are easier to reach as they are always next to your thumb(left hand) or next to your index (right hand). Especially on the HD2 which is big and HW keys too far below...
any solution for the win key?
sorry. duplicate..
slayerns said:
any solution for the win key?
Click to expand...
Click to collapse
+1
I would like to map this to the win hard button too.
Hello,
How to change the function to the button "Back" HTC HD2?
Merci
cliver said:
Does anyone know how to make this work on a bluetooth headset?
I'm trying to get cybertron Voice Commander to fire up on a long press of the send button on my bluetooth headset.
I've put a link to the app in /windows and named it long_send. The send key on my HD2 opens the app but the headset key doesn't?
Any idea why?
Regards
Clive
Click to expand...
Click to collapse
Well, I wonder how HTC could miss this point about assigning buttons and bluetooth stuff as flixibility is probably the most important thing that wm users want.
For me, I have tried the long_send.lnk trick with MSVC, which works , but I can't receive call with send button. Now my main problem is the call button on my headset that when I long press it, it doesn't start any application, but after I install Cyberon VSD, it starts. There should be somewhere that we can configure the file location in which this long press function triggers, but still can't find it. I even can't find the Cyberon exe files.
Any idea, guys? Thanks in advance..
rezaulkabir said:
Hi, This is my First Post to XDA. After using TP2 for 2 months, I just got my new HD2. Its a great piece of Hardware but I immediately notice following things:
1. The Standard Task Manager that used to sit at Top Right Corner is no longer there.
2. All Settings->Personal->Buttons does not have any Button Listed. So, I cannot assign a Task Manager to Hardware Key.
After investigating, I could find that the Task Manager that find from "Settings"->"Other"->"Task Manager" is located in \windows\taskmgr.exe
This is not a Bad Task Manager but I needed to assign this to a Hardware Key.
Following Registry entries will allow you to bring up the "taskmgr.exe" when you perform a Long Press to Send Key (Left Most Hardware Key on HD2):
Go to in registry:
HKLM\Software\Microsoft\Shell\
Create a new Key: Keys
Inside "Keys" create another Key: 40C6
Inside "40C6" create following Registry values:
1. Name= Name value= Send key(Hold) type=string
2. Name= Icon value= \windows\SendKeyIcon.exe, 0 Type=string
3. Name= Flags value= 0 Type=dword
4. Name= default value=\windows\taskmgr.exe Type=string
Now restart. This is working great for me.
Click to expand...
Click to collapse
I am not shure what goes into Name field and what into String field, i have tried to put Name value= Send key(Hold) into Name field, also Name value into Name, Send key(Hold) into string, and it didn't work for me. Can u tell me please what goes into what field. thanks
Here is the ready complete registry key
http://www.megaupload.com/?d=OLB5RHLE
Put in the phone and start, soft reset after that.
Go to settings\personal\buttons and assign program for the list that appears below.
Where does the PPC Registry store button mapping info and why should I pay attention to it?
A question has just been posted to http://www.pocketmatrix.com/forums/v...ic.php?t=21384 about hardware button problems caused by a button enhancer application, which is able to greatly extend the functionality and usability of a one-function hardware button. Buttons like these are the hardware buttons on most, mostly older, PPC's; they can't be programmed to react to long . This is where button enhancers come into picture; it's a completely different question that they sometimes do cause problems, just like the one in the above-linked thread.
It should be pointed out that a lot of newer devices like the last-generation Fujitsu-Siemens Pocket Loox 720 assign two functionalities to the same hardware button (that is, 12 functions overall - it has 6 hw buttons -, as opposed to, say, the meagre 4 functions of the previous-generation iPAQ 2210).
The tips I describe here are also very useful in swapping your favourite button configurations without using any external (and, sometimes, commercial) apps, not just at fixing your button configuration. Furthermore, you'll also learn a bit about where to look for things in Registry.
Fortunately, it's very easy to modify your button configuration in the Registry.
Everything related to the hardware button configuration is located in the registry under [HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Shell\Keys]. Every hardware button is given a registry key named 40Cx, where x is the serial number of the button. Traditionally, on Pocket PC's, Button 1 is Calendar and, on the majority of them, Button 2 is Contacts. Their subkey names are 40C1 and 40C2, respectively.
In these keys, the most important of them is the (Default) value (denoted by @ in registry exports) because it links the program to be called upon button press. With Button 1, Calendar, it's "\Windows\AppButtons\Calendar.lnk" by default. (In Registry exports, all " and \ characters are escaped - that is, preceded - by a \ character and all non-numeric values are between " marks; this is why registry export files are so different from what you can see in a Registry editor.
So, what you should do, in case your HW button configuration gets ****** up and/or you want to backup/restore your button configuration, without gooing through in the painful process of reasssigning them by hand? It's pretty easy: get a registry editor (I recommend Resco Registry Editor (REE) because it's capable of both backing up a given key and also selectively restoring) and,
- if you want to back up: stand on HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Shell\Keys, tap-and-hold the stylus and choose Export
- if you want to restore: just tap the registry file you previously backed up from inside File Explorer. This can be done even without starting REE. Alternatively, from inside Resco Registry Editor, choose File/Import.
Incidentally, the ability to load registry data with only one click, particularly if you put a shortcut to your registry file on your Today screen. With this, you can do a lot of previously undocumented things MUCH easier on your Pocket PC. For example, you can change your Pocket Internet Explorer (HTTP) or other proxies with just one click on the Today screen as described at, say, http://www.firstloox.org//forums/showthread.php?p=28878 and http://discussion.brighthand.com/sho...hreadid=118113 .
- if you just want to fix something, you can also come here. For example, if you want to restore the default setting of a given button, you can just copy the contents of ResetCmd to Default. Or, if you want to change the default icon/name assigned to the button in the Buttons applet, just modify Icon/Name.