I personally never use Compact Qwerty, but it's the first one in the list, so after a soft reset, that is what it gets set to.
I found this link:
http://xdaforums.com/showpost.php?p=3424757&postcount=22
From that I found that I can just rename this key
[HKEY_CLASSES_ROOT\CLSID\{62B00599-25D2-4e09-8C48-03BF26DB8517}\IsSIPInputMethod]
To something like:
[HKEY_CLASSES_ROOT\CLSID\{62B00599-25D2-4e09-8C48-03BF26DB8517}\IsSIPInputMethodJunk]
And not soft reset and then it would no longer appear.
Renaming it back and not soft resetting would make it reappear without soft resetting.
I had wondered why it always took so long to display the list of available SIPs. It has to scan through all the registered classes of the registry to determine if it is a SIP. It looks like Windows does not cache this.
I know I can just install SipChange to control what is the default. Even SipChange has a delay, and that is probably because it does the same thing.
More just posting this as some info, but I am wondering if there is a way to have a long press of the SIP launch an app, Then I could write a simple app to select from a list where the values are either cached or in an xml file.
As a side note, since displaying the list of SIPs causes all of the clsid keys to be scanned in HKCR, displaying them will drain power.
I also just ran some code to iterate through the SIPs.
First time the button is pressed, it's about a 5 second delay.
Then each press is virtually instantaneous.
Code:
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]private [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] button1_Click([/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] sender, [/SIZE][SIZE=2][COLOR=#2b91af][SIZE=2][COLOR=#2b91af]EventArgs[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] e)[/SIZE]
[SIZE=2]{[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] foreach[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] (Microsoft.WindowsCE.Forms.[/SIZE][SIZE=2][COLOR=#2b91af][SIZE=2][COLOR=#2b91af]InputMethod[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] im [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]in[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] inputPanel1.InputMethods)[/SIZE]
[SIZE=2] {[/SIZE]
[SIZE=2][COLOR=#2b91af][SIZE=2][COLOR=#2b91af] MessageBox[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].Show(im.Name, im.Clsid.ToString());[/SIZE]
[SIZE=2] }[/SIZE]
[SIZE=2]}[/SIZE]
even though the code is very simple, I am siting my reference:
http://www.christec.co.nz/blog/archives/42