Overview
Currently, I’m investigating what can be improved in the new release of Proxy Switcher.
For those of you, who don’t know what Proxy Switcher is a few facts:
- Proxy Switcher automatically set the proxy depending on your current network connection
- Beside of that, it can set other things too. E.g.: Execute scripts, change default printer, etc.
- Click here to go to the project site for more info
Windows 7 Sensor and Location Platform
With Windows 7 Microsoft created a new “Sensor and Location Platform”. Until now, there is not much hardware compatible with it, but this hopefully will change in the near future.
With this API, applications can easily access the available sensors. Here you can find some examples and also a “manual” location provider by clicking on a map.
For the location API, there is a cool free “software” device called Geosense. From their website:
Geosense is designed to use a hybrid mix of geolocation service providers and geolocation methods to pinpoint the most accurate location information possible - including but not limited to WiFi triangulation, cell tower triangulation and IP lookup. Source: http://www.geosenseforwindows.com/
While your laptop vendor has not yet integrated a Windows 7 compatible hardware GPS sensor, Geosense is a good compromise.
Proxy Switcher Integration
For Proxy Switcher this will become a new option for switching proxy configurations, or doing some other stuff as you can see here:
(click to open in a new window)
Code
To access the Windows 7 location API all you need is the .NET Framework 4. There is a new System.Device.dll (contained in the Client Profile of the .NET Framework). Adding a reference allows you to access the current location.
First, add the following using statement:
using System.Device.Location;
Use the following code to get the address:
GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();
watcher.TryStart(false, TimeSpan.FromMilliseconds(1000));
// Get the location, including lat, long, speed, altitude, etc.
GeoCoordinate location = watcher.Position.Location;
// Try to get the current address, including street, city, etc.
CivicAddressResolver resolver = new CivicAddressResolver();
CivicAddress address = resolver.ResolveAddress(location);
Summary
With this new functionality, Proxy Switcher is not a pure “Proxy Switcher” anymore, but a multi-functional network/location based “generic” extensible execution tool. New actions can be easily created by developers through the MEF AddIn Framework. More on this in a later post.
If you want to become a beta tester, feel free to contact me at “mail” at thisdomain.