Disable settings button - Windows Mobile Development and Hacking General

I have to prepare a device for someone who may not access the settings page, but i don't know how to do it the easy way.
Ofcource i can put in all the reg:
HKLM\ControlPanel\<app>\hide = 1
or for each app to set the group key to 4 or something.
but that means a lot of work.
My question is: is there a easy way to disable settings menu?

I think that there is no easy way - due to the nature of pocket pc OS Your work can be always characterised as "security by obscurity".
Maybe You can constantly monitor active windows and terminated unwanted process - but this approach is hard to implement and user unfriendly

properly there is an alternative way.
if i rename or delete \windows\start menu\settings it would disappear

Related

Can anyone help with any of these???

Hi guys! Had my M5000 for about 10 days now and finally getting used to it but I wonder if anyone canm help with any of the following questions??
1. How do we edit the dictionary?? I can't even find how to add words and that would be REALLY handy as I normally use the phone pad for typing!
2. Can we select a default input method? (I use the phone pad but it always reverts to popup keyboard)
3. Can we change what the soft keys to on the today screen? (I'd dearly love to change Calendar to Messaging!)
4. I prefer to keep event, program and notification sounds all turned on but can I disable the start button click and the noise it makes when opening programs or settings??
5. My device is set to turn off after three mins - Is there a way to make it turn on again when I press ANY button? (I swear the power button moves in the dark lol)
6. When I go into my games menu it takes just over 40 seconds to list them all (I have about 20 games all installed on my memory card) - Does anyone know what might cause this??
7. Is there a way to get these phones to receive files over bluetooth from other make of phone? Mates with both Nokias and Sony have tried sending me pictures over BT but no luck
Think that's it for now - Sorry if any of these are stupid questions with obvious answers that I've missed but I'm pretty sure I've tried every damn menu on the device now lol! I'm also hoping that there's things here that other people would also like ot know!
Thanks
1. The dictionary can have words added to it by making a document in Word (named, for example: 'Personal dictionary') and saving it. Any word you add will be in the dictionary from that point on (as long as the document is not deleted).
3. Try registry hack here: http://wiki.xda-developers.com/index.php?pagename=Universal_Registry
5. Try 'Settings' - 'Buttons' - Lock tab - 'Do not lock buttons'
4. Not sure if there's a reg hack for it, I've searched for the filenames below and their paths to no avail. but the only other way would be to remove the following files from \Windows:
hwandsw.wav
MenuPop.wav
If you remove or copy these to a different location, then you won't hear anything. During the old XDA / XDA2 and i phases, I used to swap the WM2002/3 sounds for PC Windows noises. Later, when it came to 2005, I used the set contained on here as they were much nicer.
6. If they're on the SD card then presumably it has to search the SD for all of the .exe files. This could be improved by perhaps defragging your card (StorageTools is a good app for this). Another thing may be to try creating links to your game .exes in a folder on the PHONE, and replace the Start > Programs > Games icons with links to the PHONE copies. You can add / remove these by going to \Windows\Start Menu\Programs\Games
7. http://wiki.xda-developers.com/index.php?pagename=Universal_Registry - look for the section entitled To change the ability to receive files via Bluetooth (OBEX)
Ant
Hi
The registry obex 'hack' does exactly the same thing as going to settings, comms, beam, and clicking the selection box 'recieve all beams' Beam = Ir AND Bluetooth.
I find that the button lock setting does not work. With it set to 'do not lock' you still cant press any button to switch the unit on
Nigel
Thanks for the tips guys
Maybe I should have been more specific with the dictionary thing - I want to be able to add words to the predictive text (Town/friends names for example) - Does adding them to the dictionary do this??
Yes, adding any words to the dictionary adds them to predictive text, as well. The predictive text uses the dictionary.
Plus you'll find that as you type more and more, it will automatically add words you spell out it doesn't recognise.
Ant
Thanks guys - Especially for the registry link - Some REALLY great stuff there
hmmmmm... One quickie though:
For example, to change the left-hand softkey to start Pocket Excel you would set
* HKEY_CURRENT_USER\Software\Microsoft\Today\Keys\112\(Default) = Pocket Excel
* HKEY_CURRENT_USER\Software\Microsoft\Today\Keys\112\Open = \windows\pxl.exe
Anyone know how I set this to open contacts???

Tip - How to Disable Clock

Hi folks,
You guys might already know about this but I just discovered how to do it after doing some heavy googling over the past couple of days. Many thanks to the guy at this link who made the discovery!
How to lock down the clock on Windows Mobile devices
I was reading through some of the messages on the microsoft.public.dotnet.framework.compactframework newsgroup when I came upon a real gem of a message.
The key piece of knowledge being, that there is a special registry key, that will disable GUI access for the clock on Windows Mobile devices.
Application State Registry Key for Windows Mobile Clock
HKEY_LOCAL_MACHINE\Software\Microsoft\Clock\
If this is set to 0x11 the clock is enabled, as by default. If it is set to 0x30, or probably anything not 0x11, it is disabled and ignores any attempts to run.
If you are writting any kind of salesforce automation applications, or route management software, then you can see just how useful this feature is. You just add a special admin feature to enable and disable the ability to set the time, or handle it entirely from within your application.
Now I just need to find out why this key even exists, since I hate to find out the OS likes to change it under circumstance X.
// disable clock
System.Byte[] offValue = new byte[1];
offValue [0] = 0x30;
OpenNETCF.Win32.RegistryKey registryKey =
OpenNETCF.Win32.Registry.LocalMachine.OpenSubKey(@"\Software\Microsoft\Clock\", true);
registryKey.SetValue("AppState", offValue);
registryKey.Close();
// enable clock
System.Byte[] onValue = new byte[1];
onValue[0] = 0x11;
OpenNETCF.Win32.RegistryKey registryKey =
OpenNETCF.Win32.Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Clock\", true);
registryKey.SetValue("AppState", value);
registryKey.Close();
Click to expand...
Click to collapse
And the link to the original source -
http://www.cjcraft.com/Blog/PermaLink.aspx?guid=0b590db3-cc90-45fa-822e-acf91f031052
I was pulling my hair out over that one the last couple of days!
Cheers,
Dav
Hi dav!
I am sorry to burst your bubble, but I tried this registry hack, and found there is an easy way around it, with out editing the registry.
If you hold the OK hardware button (in the center of the joystick, on those devices that have it) then tap and hold the clock (in the task bar) you get a little menu with 2 options: Run and Clock.
If you choose clock from this menu, the app will start and the registry setting will automatically be altered so you will be able to open clock settings normally from now on.
Further investigation showed that the lower 4 bit of the AppState walue (ones digit) simply selects on what tab the clock app will open. Legal values are 1-3. Any illegal value (like 0) will jam the app preventing it from opening by tapping the icon in settings. I suspect that if a command line switch is specified it overwrites the registry value and the app opens any way. (that’s how the menu works)
Just thought you should know.
Hi levenum,
Thanks for the insights! I just tried it too and sadly that is the case ;-( Mmmh, I wonder if there is a way to hide 'Clock' from the Run\Clock thingy? or disable the Clock in some other way?
mmh, back to the drawing board...
Dav
Here's what you might try:
Create a cab that deploys an empty clock.exe to windows directory on the device.
Clock.exe is a ROM file, but a cab should be able to overwrite it (it won't work manually). This way no matter who calls it (menu or control panel) they will see the empty exe and nothing will happen.
Sounds like a good idea to me! I'll give it a try and see how it goes. Thanks for your continued help
Dav
Worked nice Thankyou!
btw, do you think that overwriting the Clock.exe would have any effect on the 'displaying' of the date in the Today Screen? By clicking the date we launch the Clock.exe program, but something else other than Clock.exe must control what shows the current date, right? I mean, the current date wouldnt just stay on the date on which we delete Clock.exe?
Cheers and thanks again,
Dav
Actually, if the exe was responsible for the date on the today screen, you wouldn't see anything once you overwritten it. Today date is just another plug-in. I think its clockdll.dll but I am not sure. Whatever the file name, it takes the date directly from the system clock.
As I understand it clock.exe is just a little GUI utility for setting system time, and alarms.
That sounds right and what i was thinking, always good to have a second opinion for confimration.
All the best,
Dav
seems like you guys might know what your doing, so do you know how to get the battery removed and the clock back on the today screen of WM5 latest rom releases....
levenum said:
Hi dav!
I am sorry to burst your bubble, but I tried this registry hack, and found there is an easy way around it, with out editing the registry.
If you hold the OK hardware button (in the center of the joystick, on those devices that have it) then tap and hold the clock (in the task bar) you get a little menu with 2 options: Run and Clock.
If you choose clock from this menu, the app will start and the registry setting will automatically be altered so you will be able to open clock settings normally from now on.
Further investigation showed that the lower 4 bit of the AppState walue (ones digit) simply selects on what tab the clock app will open. Legal values are 1-3. Any illegal value (like 0) will jam the app preventing it from opening by tapping the icon in settings. I suspect that if a command line switch is specified it overwrites the registry value and the app opens any way. (that’s how the menu works)
Just thought you should know.
Click to expand...
Click to collapse
wow..thanx for this. worked like a charm on my wing (and 2 yrs after it was posted i might add =P). i thought my alarm clock was lost FOREVER!
Hi,
I found the following code in this discussion thread:
// disable clock
System.Byte[] offValue = new byte[1];
offValue[0] = 0x30;
OpenNETCF.Win32.RegistryKey registryKey =
OpenNETCF.Win32.Registry.LocalMachine.OpenSubKey(@"\Software\Microsoft\Clock\", true);
registryKey.SetValue("AppState", offValue);
registryKey.Close();
It looks pretty useful to me but It has some OpenNETCF keyword.
Please suggest me what is OpenNETCF? Is it an additional third
party compact framework and how can I get this?
Also, if it is inbuild reference by Microsoft, from where to get it?
-Abhishek Maitrey
OpenNETCF is an extra SDK for WiMo devices. Search for it....
In this situation it's not needed.

How to remove installed input methods on Windows Mobile 5

Hi all,
I don't have any use for the input methods "Block Recogniser", "Letter Recogniser" or "Transcriber" and I'd like to remove them.
I've recently installed another virtual keyboard, and I can't get it to load - I've been lead to believe this can occur if you've got too many keyboards loaded (only the default ones + the CoPilot keyboard) or too much stuff loaded in the Today screen (*cough* maybe LOL).
Is it just a registry setting (like the today screen) or is it something more fundamental?
Thanks
Jon
I dont thnk you can remove the defaults SIP as they are in the ROM, however you may remove them from the list. Check the wiki at WM5 section for the reg tweak to it.
As for your second question, I'm not sure, but I have 3 additional SIP there, it seems working just fine, and I have 3-4 things on my Today screen.
Ok, now the other question, how to manually ADD SIP? Other than copying files, one may need some regitstry tweaks... Any idea?
For example, i want to add japanese SIP to English ROM...
Use a CAB manager to open up the SIP CAB installation file, and look at what they've done.
BTW, a 'friendly' warning, doing things on the SIP registry can potentially freeze your phone upon any softreset, hence making your phone useless without hardreset. So, make a backup before doing anything and prepare for a hardreset.
A few notes:
1) All SIPs are registered under HKCR\CLSID\{SIP CLSID} If you do a search of those keys looking for value containing SIP name as it appears on the menu you will find it. To disable SIP delete its key.
But as hanmin already pointed out: Be careful when messing with registry and SIPs in particular!
2) Generally built in SIPs don't count for the "too many SIP" scenario. If you have 5 or more 3rd party SIPs installed that could be the problem. Other wise it might be missing DLL, bad registry or internal problem with the software. Also in AKU 2 and up devices 3rd party SIPs may stop loading after a while (like a day of use or so) until you soft reset device.
This can be prevented by toggling through them on startup. There is an app on the forum here somewhere to do just that.
3) SIP registry (assuming it doesn't need custom settings) looks like this:
HKCR\CLSID\{SIP CLSID}
default (string) SIP Name
HKCR\CLSID\{SIP CLSID}\InProcServer32
default (string) sipdll.dll
HKCR\CLSID\{SIP CLSID}\IsSIPInputMethod
default (dword) 1
Unfortunately, usually there is no way to find SIPs CLSID from the outside to create the key.
However, every SIP must contain a DllRegisterServer function, which when called will create the needed registry entries. If you can find something similar to regsvr32.exe for the PPC you should be able to safely register the SIP.
Once again: putting the DLL under windows and registering the SIP does not guarantee that it will work or that your device recovers from soft reset.
Be sure to backup your data!
{ok, I think that's enough fun with styles and colors for now}
You could also try Tweaks2K2.NET. With this program you can hide the SIP's you don't want to show on your device
Thanks for the info levenum. I will analyse working Japanese ROM SIP now... Will report if find something usefull...
Does removing an SIP from the list make it pop up faster when clicking the arrow to bring up the list??

Kiosk mode & some questions

Hi,
my application on Windows Mobile 5.0 shall run in kiosk mode. Therefore, I've disabled the TaskBar and did some other stuff. Basically, it works great, but I'm still having a few problems:
1. When I hide the taskbar, also the "OK" Button which is needed by some dialogs gets hidden. Therefore, when the user e.g. wants to change communication/GPRS settings, there is no way to accept the changes or close the regarding dialogs. (I have to use these sort of things provided by the operating system - thus, the OS is not entirely hidden).
Is there any possibility to simulate the TaskBar's OK button within my own application? (E.g., by sending a certain Windows-Message indicating the OK-Button pressed?)
Or, alternatively, is it possible to just hide some parts of the TaskBar (e.g., the Start Button) and keep the OK button, clock, and GSM status visible??
2. Somestimes, there appears a system-notification window, e.g. notifying the user about establishing a GPRS connection, or regarding failures. Is it possible to intercept these dialogs and to hide them, or just to disable them such that the user can see it, but tapping the "Cancel" or "Settings" button won't cause any action?
I'm working with Visual Studio 2005/windows Mobile 5.0 SDK in visual c++ and I'm using the HTC ARTEMIS device
Kind regards,
Günther
1. You can send WM_COMMAND with wParam = IDOK.
It must work, because it's how app handle it!
Is there anything I have to consider when sending WM_COMMAND system-wide? A simple PostMessage(NULL, WM_COMMAND,...) seems not to work. Do you see any possibility to get a Windows handle to the active application that should receive the WM_COMMAND message?
Or do you have any idea how applications tell the TaskBar to show the OK or Cancel button? I think this happens via system-wide windows messages, doesn't it? But which messages, and how to intercept them???
Any help is still highly apprechiated (it seems that nobody else did ever have this problem, also in various fora I couldn't yet get an answer... )
I have the same problem with the ok buttom. My PDA have 1 buttom for the camera, so I use this buttom like an OK buttom, for now.
But I´m still trying to make the ok buttom be operacional on the blocked taskbar.

Start IE in full screen on boot

Dear XDA-Developers,
As a volunteer for a project i'm making a webapplication which is controlled by a pocket pc.
To make it useable for people i want Internet Explorer to start automatically on the boot of the device. That on itself isn't that hard, i know.
I need IE to open a specific webpage, and go in full screen mode.
Maybe it's not that difficult, but next to webdeveloping, i can't make software etc. so i was hoping someone has a solution for me. It would be a big help.
Thanks in advance.
You can use Resco Explorer to make a shortcut like this:
"\Windows\iexplore.exe" http://www.xda-developers.com (To open your favorite site )
You can put this link in \Windows\StartUp\
I currently don't know a method to open fullscreen.
Well last time I tried if I exit IE when it's full screen, it stays full screen next time I opened it. This is with WM6.
Hi,
Not sure if this will help but Confused Stu has just released a ROM that starts IE in Full Screen.
http://forum.xda-developers.com/showthread.php?t=371014
Cheers.
THIS is how to start Pocket IE in FullScreen mode
I'm sure this is waaay too late for your project, but for the sake of posterity (and for the search engine) here is how to start Pocket IE in FullScreen mode...
It's in the registry- HKCU\Software\Microsoft\Internet Explorer\Main
the key is a DWord called "FullScreen" set it to 1.
Obviously, if PIE is already running (minimized but not closed) you'd have to kill the process, write the registry entry, then open PIE. PIE retains the fullscreen setting until you change it (either via the registry or by exiting fullscreen mode within PIE) but it couldn't hurt to check the registry value before firing up PIE.
All of this easily done via Mortscript. In the case of a console-type app that runs on startup and you want the user to stay in that app (and out of the rest of the system), you'd want to check periodically to make sure PIE was the active window, and activate it if not. You might also want to prevent access to the PIE menus (via the SoftKeys) and also the Start Menu button. I'm sure there's a util somewhere to disable the HW buttons, but off the top of my head, I can't think of any.

Categories

Resources