Не могу считать MultiString реестра
Цитата: Илья от 04.05.2021, 18:46Всем привет, подскажите пожалуйста как можно исправить этот кусочек кода, что бы можно было прочитать MultiString в реестре и создать бэкап.
У меня выводитьсяSystem.string[]using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management")) { object pf = key.GetValue("PagingFiles"); object epf = key.GetValue("ExistingPageFiles"); using (RegistryKey keyfp = Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", true)) { keyfp.SetValue("PagingFilesbackup", new [] { $"{pf}" }, RegistryValueKind.MultiString); keyfp.SetValue("ExistingPageFilesbackup", new [] { $"{epf}" }, RegistryValueKind.MultiString); } }
Всем привет, подскажите пожалуйста как можно исправить этот кусочек кода, что бы можно было прочитать MultiString в реестре и создать бэкап.
У меня выводиться СкопированоSystem.string[]
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"))
{
object pf = key.GetValue("PagingFiles");
object epf = key.GetValue("ExistingPageFiles");
using (RegistryKey keyfp = Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", true))
{
keyfp.SetValue("PagingFilesbackup", new [] { $"{pf}" }, RegistryValueKind.MultiString);
keyfp.SetValue("ExistingPageFilesbackup", new [] { $"{epf}" }, RegistryValueKind.MultiString);
}
}
Цитата: Adler от 04.05.2021, 18:53Добрый день.
Что то ничего не понял, что куда выводится?
System.string[] - это массив строк и работать с ним нужно соответсвенно как с массивом.
Добрый день.
Что то ничего не понял, что куда выводится?
System.string[] - это массив строк и работать с ним нужно соответсвенно как с массивом.
Цитата: Илья от 04.05.2021, 18:58Добрый день.
С начало я считываю параметр в реестрobject pf = key.GetValue("PagingFiles");
затем мне нужно создать новый параметр"PagingFilesbackup"со значением"PagingFiles"
но у меня вместо значения появляетсяSystem.string[]в значении"PagingFilesbackup"
Добрый день.
С начало я считываю параметр в реестр Скопированоobject pf = key.GetValue("PagingFiles");
затем мне нужно создать новый параметр Скопировано"PagingFilesbackup" со значением Скопировано"PagingFiles"
но у меня вместо значения появляется СкопированоSystem.string[]в значении Скопировано"PagingFilesbackup"
Цитата: Adler от 04.05.2021, 19:18Ошибка кроется явно в
new[]{$"{pf}"}но на вскидку не знаю как правильно.
Там не дожно быть никакихnew[]т.к. вам нужен не новый массив, а уже имеющийсяpf.
Либо там просто нужно писать pf, только обьявивpfне как object, а как string[], чотя может как и object сработает.
Обычно предпочитаю точно задавать тип переменной, когда это возможно. Так проще...
Ошибка кроется явно в Скопированоnew[]{$"{pf}"} но на вскидку не знаю как правильно.
Там не дожно быть никаких Скопированоnew[] т.к. вам нужен не новый массив, а уже имеющийся Скопированоpf.
Либо там просто нужно писать pf, только обьявив Скопированоpf не как object, а как string[], чотя может как и object сработает.
Обычно предпочитаю точно задавать тип переменной, когда это возможно. Так проще...
Цитата: Илья от 04.05.2021, 19:23Тогда возникает другая ошибка если убрать
new[]
Тип объекта значения совпадает с заданным RegistryValueKind либо объект не может быть корректно преобразован.
в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)Спасибо за совет буду пробовать дальше.)
Тогда возникает другая ошибка если убрать Скопированоnew[]
СкопированоТип объекта значения совпадает с заданным RegistryValueKind либо объект не может быть корректно преобразован.
Скопированов System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
Спасибо за совет буду пробовать дальше.)
Цитата: Adler от 04.05.2021, 19:26Посмотрите пример тут https://docs.microsoft.com/en-us/dotnet/api/microsoft.win32.registrykey.setvalue
Посмотрите пример тут https://docs.microsoft.com/en-us/dotnet/api/microsoft.win32.registrykey.setvalue
Цитата: Илья от 04.05.2021, 19:27Еще раз спасибо)
Еще раз спасибо)