• Post Calendar

    November 2009
    S M T W T F S
    « Aug   Jan »

A Tale of Two Mice

Technorati Tags: ,,

User Story: As a Windows 7 user of an IntelliPoint mouse I want to switch from left-handed to right-handed (and vice-versa) with a single double click.

The Old Way

I have a really nice mouse, but it uses IntelliPoint… ok, that’s fine. But at home I use the mouse left handed while at work (or on the road) I use it right handed. Here’s what it looks like to switch the keys between locations:

I’m starting as a Right Handed user…

1) Double click to open the IntelliPoint mouse

On my desktop I have a shortcut that looks like this: clip_image002

When I double click that I get this dialog box:


Now Dell (bless their hearts) felt that they needed a front row seat, so it pauses for about 2 seconds (even on my very fast machine) before the Buttons tab (that’s the one I need) takes a back seat to the Dell Touchpad tab..

2) Select the Buttons tab

On to click number 2… I select the Buttons tab with looks like this:


Now before IntelliPoint came along, there was a nice little "Switch Mouse Buttons" checkbox… check it (when going from Right to Left) and then click OK, and I’m done… But IntelliPoint came along (and added a feature I like – the magnifier)…

3 and 4) Change the Left button

Now I change the left button to read Right-click (pretty easy)

5, 6, 7) Change the Right button

That’s not so easy. The option I want is out of view. I need to select the dropdown list (click 5), then use the scroll bar to move up to the option I want (click 6), then select it (click 7).

After steps 3 and 4 I have this:


8) Finally, Click OK

Now I can click OK. Going the other direction the "Restore Defaults" button makes my life MUCH easier… It’s only 4 clicks. (Double Clicks only count as 1 click for this post).

I’m not happy with that, so I’m going to see if I can change the way I switch hands with my mouse. Here goes…

A Coding Project

5:45 pm – Create a C# class library project in Visual Studio 2010 with the intent of changing the registry keys. I was able to use WinDiff and see what registry keys were changing when I’d do this. I want this to be generic, so I’ll create a project that will read the keys from the app.config file and let others change that without needing to write code. Since I’m using TDD (Test Driven Development – in the event you’ve been listening to your iPod rather than what I say…) I’ll start with some tests:

  • Can_Read_Left_Mouse_Registry_Key_From_Config_File
  • Can_Read_Right_Mouse_Registry_Key_From_Config_File
  • Can_Read_Left_Button_Value_For_LeftHanded_Mouse
  • Can_Read_Right_Button_Value_For_LeftHanded_Mouse
  • Can_Read_Left_Button_Value_For_RightHanded_Mouse
  • Can_Read_Right_Button_Value_For_RightHanded_Mouse
  • Can_Determine_Current_Configuration (Is the current config Right-Handed or Left-Handed?)
  • Can_Change_Current_Configuration

I’ve actually typed the titles of these tests in this blog post before I even type them into Visual Studio. Seems pretty simple. Let’s see how it goes.

Side Note: I saved the registry items for the Computer\HKEY_CURRENT_USER using the Export. Once for the left configuration, again for the right configuration. Then I used WinDiff to find out what keys were being changed.

8:15 pm – Ta Da. 100% code coverage. Very little code. I can close the user story. Story Points? I’d give it a 2.

The New Way

1) Double Click the MouseSwitcher: clip_image010


Cost Benefit Analysis

150 min to create the MouseSwitcher. I timed the switches. To go from right to left is 20 seconds, from left to right 7 seconds. In both cases, gated mainly by waiting for the Dell application to take the front row seat. I’ll round to 30 seconds each day. The MouseSwitcher takes less than 1 second.

That means that in about a year I will save enough time to make up for the development "cost". Of course I learned a lot too.

No frustration (particularly when my wife walks in the room after I had to do the 20 second switch)? Priceless!

Leave a Comment