Am nevoie pentru a testa o cheie, setați o cheie, și clar o cheie și, în toate cazurile, calea completă și valori-cheie s-ar putea, de fapt, nu există. M-am gândit la comenzi ar putea fi cauza de se întoarce false dacă o parte din cale nu există pentru a verifica și de a crea calea pe platou dacă aceasta nu există, dar care pare să nu fie cazul.
internal bool DownloadGroupByOff()
{
using (RegistryKey hku = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
{
using (RegistryKey explore = hku.OpenSubKey(@"Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{885A186E-A440-4ADA-812B-DB871B942259}"))
{
if (GetValueInt(explore,"GroupView") == 0)
return true;
}
}
return false;
}
public void DownloadGroupByEnable()
{
using (RegistryKey hku = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
{
using (RegistryKey explore = hku.OpenSubKey(@"Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{885A186E-A440-4ADA-812B-DB871B942259}", true))
{
explore.DeleteValue("GroupView");
explore.DeleteValue("Mode");
}
}
}
public void DownloadGroupByDisable()
{
using (RegistryKey hku = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
{
using (RegistryKey explore = hku.OpenSubKey(@"Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{885A186E-A440-4ADA-812B-DB871B942259}", true))
{
explore.SetValue("", "Downloads");
explore.SetValue("GroupView", "0");
explore.SetValue("Mode", "4");
}
}
}
Deci, ce aș vrea să știu este cel mai curat mod de a rezolva această problemă. Aș putea scrie o scurtă funcția care rupe căi de sus, teste fiecare nivel, și adaugă subcheia dacă aceasta nu există deja, dar aș prefera să nu faci asta dacă nu e mai elegant sau built-in mod de a face acest lucru.