Что значит "не все"? Это список установленных приложений, который показывается в панели управления. Приложения, которых нет в этом списке — в панели управления показываться не будут.
HKLM - глобальная ветка, HKCU - текущий пользователь. Соответственно в панели управления показываются программы из глобального списка и из списка конкретного пользователя. Рекомендую почитать статьи про устройство реестра и как с ним работать.
VoidVolker, я про это знаю. Только вот зачем мне HKCU со списком отдельного пользователя, когда я могу получить полный список через HKLM. В HKCU никогда не будет того, чего нет в HKLM.