Muszę sprawdzić klucz, ustawić klucz i oczyścić klucz, i we wszystkich przypadkach pełną ścieżkę i wartości klucza może w rzeczywistości nie istnieć. Myślałem, że drużyny wyjaśnić to, zwraca false, jeśli część drogi nie ma przy weryfikacji i tworząc drogę do zestawie, jeśli on nie istniał, ale wygląda na to, że to nie tak.
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");
}
}
}
Tak, że chciałbym wiedzieć, jak to najczystszy sposób rozwiązania tego problemu. Mógłbym napisać szybką funkcję, która rozbija drodze, sprawdzić każdy poziom i dodaje podklucz, jeśli go tam jeszcze nie ma, ale wolałbym nie robić tego, jeśli jest bardziej elegancki lub wbudowany sposobem, aby to zrobić.