A prior company I worked at used a product called Deski to gather this informaion for all computers on the network. We basically added running this app from a network share on each login to the workstation. It would then scan the workstation and log all the applications which are installed and all the Keys, etc as well as a bunch of hardware information.
As I remember it wasn’t that expensive either. The reporting isn’t that great, because it uses a single XM file for each computer, but we loaded the XML files into a SQL Server 2005 database so that we could easily query the data and report off of it.