Hey all!

I'm having a problem that I hope you guys can help me resolve. Sorry for the long post, but I feel a need to convey the whole picture to accurately describe the problem. First, the backround story:

Originally Posted by jym04 on XDA-developers

This may fix many "random" GPS issues people be having:

As noted in this post, it seems QuickGPS in WM6.1 isn't updating it's "region" registry key properly (mine isn't, for example) which leads QuickGPS to download wrong satellite data (Probably from US or UK). This can be fixed by editing HKLM\Software\HTC\QuickGPS\region from "--" to your region. "US" to USA users for example.

Just to clarify, QuickGPS downloads the some of the information that a GPS receiver would get from the satellites. The thing is that without QuickGPS, the receiver would have get all the information from the satellites, and calculates where they are before it gets a fix. Since it doesn't already know which channels to look into, this can take some minutes. With QuickGPS your device knows where it has to look, and if you haven't used your GPS for a while(cold start), a fix will take a minute of less. If you already used your GPS in the last few hours, a fix will be faster (called warm start) , because some of the information of the satellites is still valid. If you used in the last minutes (hot start), you'll get a fix within a few seconds.
I'm having the same issue and I've changed the region in the registry from "--" to "SE" (Sweden), but the string won't stay put(!) After a reboot and running QuickGPS, it goes back to "--". I've tried waiting a couple of hours after editing and holding the power button to shut down more gently, but it doesn't help. I finally made a little MortScript and added it to startup:

Code:
While (1)
WaitFor ("QuickGPS", -1)
If NOT regKeyEqualsString ("HKLM", "Software\HTC\QuickGPS\", "region", "SE")
RegWriteString ("HKLM", "Software\HTC\QuickGPS\", "region", "SE")
EndIf
Sleep (10000)
EndWhile
Simply having it change the registry setting at startup doesn't help, as QuickGPS changes it back when running. Since it's set to update satellite information while an ActiveSync connection is established, it's running pretty much all the time and thus changing the registry setting again and again...

Now this script works and keeps the "SE"-setting, but having the script running constantly isn't exactly optimal as it uses processing power (around 4% currently. This is a constant CPU-usage, no matter how long I make it sleep - which I find weird) and thus adding to battery-drain. Anyone have any ideas on a different way of making the script, which is more effective/power-saving? Or is there an even better way to make the registry key stick?

Any input is appreciated, as I've asked around on a lot of places and still haven't been able to resolve this. Thanks in advance!