There are a number of CAN Bus adapters out there that will provide you what you want. The hard part isn't the adapter or even the programming to read messages and act accordingly. The hard part is finding the message ID to the right message and decoding it accordingly.
For example, Tomi Liljemark has been working on the CAN Bus messages for the Saab 9-3 (and so far, the ones I've tested are the same for the 9-5). Scroll down to message ID 290h - it's the one for steering wheel buttons. Even after you receive the message, there's some bit manipulation necessary to know which button was pressed.
Tomi's site shows three different CAN Bus adapters (2 USB and 1 serial). Another company to look at is Kvaser. If you want to build your own, Elektor has a design in their February 2008 issue that I built to experiment with on my Saab.