Probleem met registry key

Status
Niet open voor verdere reacties.

badboyR

Gebruiker
Lid geworden
11 apr 2012
Berichten
28
Ik heb nog steeds problemen met mijn programma, deze keer bij het debuggen. Er is een functie die niet goed werkt, ik probeer de install locatie van een programma te achterhalen d.m.v het register. Als ik de locatie.ToString() doe krijg ik de error "Object reference not set to an instance of an object.".
Weet iemand wat hiervan de oorzaak is?

Code:
public static bool isX64()
        {
            if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432")))
            {
                return false;
            }
            else
            {
                return true;
            }
        }

public static string GetInstallDirectory()
        {
            if (Windows.isX64() == true)
            {
                RegistryKey installLocation = Registry.LocalMachine.OpenSubKey("SOFTWARE/Wow6432Node/Rockstar Games/Grand Theft Auto IV/InstallFolder", false);
                string Locatie = installLocation.ToString(); // <-- Probleem
                return Locatie;
            }
            else
            {
                RegistryKey installLocation = Registry.LocalMachine.OpenSubKey("SOFTWARE/Rockstar Games/Grand Theft Auto IV/InstallFolder", false);
                string Locatie = installLocation.ToString(); // <-- Dit zal dan ook wel een probleem zijn (mijn os is x64)
                installLocation.Close();
                return Locatie;
            }
        }

De locatie is trouwens goed en de key bestaat.
 
Misschien zo?
Code:
"SOFTWARE\\Wow6432Node\\Rockstar Games\\Grand Theft Auto IV\\InstallFolder"
 
probeer hem eens te builden naar x64, dat werkte bij mij (Wow6432Node) bestaat niet bij mij, weet je zeker dat die bestaat ?.

als ik hem builde naar x64 dan gaf de lijst van subKeys totaal andere entries aan.
Je kan iig zo stop voor stap debuggen wat er mis is. gewoon per subKey dieper er in stappen.

[cpp]
RegistryKey regKey = Registry.LocalMachine;

regKey = regKey.getSubKey("Software");



foreach(string s in regKey.GetSubKeyNames())
{
Console.WriteLine(s);
}
[/cpp]

Wat ik verder nog gevonden heb als eventueel probleem is het feit dat je een enkele / gebruikt ipv een \\
 
Laatst bewerkt:
Probleem is al opgelost, ik gebruikte het verkeerd. Ik moest dit gebruiken:
Code:
var Locatie = Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Rockstar Games\\Grand Theft Auto IV", "InstallFolder", "niks");
                string Bestand = Locatie.ToString();
                return Bestand;
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan