Yesterday afternoon I was tinkering with the custom states you can define within Office Communicator 2007 and found actually creating the custom states obnoxiously difficult for an end-user. In an effort to remedy that problem I whipped up an application I'm going to call the Communicator 2007 Custom Presence Tool. Let's call it a beta version for now, just to be trendy.
It provides a GUI interface for users to select their custom availability and a status note to go along with the availability. The tool creates the XML file and updates the CustomStates registry value with the location of the XML file.
A few screenshots to demonstrate the functionality:
Here's a basic rundown of what happens:
- Upon startup, the tool tries to read the value of HKCU\SOFTWARE\Policies\Communicator\CustomStates.
- If the value exists, it loads the XML file location that is specified.
- If the value doesn't exist, the user is prompted for a location to save the XML file. It defaults to %AppData%\Microsoft\Communicator\CustomPresence.xml. I chose that location to accommodate roaming profiles.
- At this point the user is presented with a blank sheet (or filled if the XML file existed) of their custom availabilities and status notes that they can fill out.
- Once Save is pressed the registry value is updated to reflect the location of the XML file.
It seems to work fine for my purposes in a lab environment, but by no means am I a programmer so I would thoroughly test this tool out on some non-production machines before you try implementing this. I'd also love any kind of feedback, so please let me know what you think. I'm positive there are some issues I haven't found yet so feel free to point them out.
Requirements: Microsoft .NET Framework 2.0