Try using the Last Known Good configuration; if there's a registry problem, that should fix it.

(Just note that Last Known Good configuration is only effective on unbootable systems, since that copy of the registry is written at system startup--hence, if you're able to get logged in, you're already using it)

If Last Known Good Configuration fails, try loading safe mode and having a look at Device Manager; Any hardware with a red X or black exclamation mark in a yellow circle has a problem with it; double-click on it and post the diagnosis

EDIT: If you're not getting an option for Last Known Good, just hold F8 while you're booting up to get your boot options menu.