anche io ho un problema simile (anche se uso c#)..

in teoria con il codice seguente si dovrebbe poter accedere alle chiavi, sulla documentazione microsoft non ho trovato nulla che dica che devi avere permessi particolari

codice:
            RegistryKey rk = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Nome1\\Nome2");
            if (rk != null)
            {
                object chiave = rk.GetValue("chiave");
                if (chiave != null)
                {
                    valore = chiave.ToString();
                }
            }
tuttavia ho notato comportamenti strani:
- in Xp funziona sia lanciando il programma come Admin che come User
- in Debug su Vista come Admin rk è dato sempre come null, mentre se invece che su LocalMachine cerco una chiave su CurrentUser allora funziona