Я фанат BATCH и пытаюсь реализовать мой ключ, используя C # winForms вместо пакета.
Я сделал простой пакетный скрипт:
@echo off
reg add "HKEY_CURRENT_USER\Software\TestProgram\Kool" /f /v "Setting" /t REG_BINARY /d h4h999d27e93f3666188231a018c9d44406136wb 1>nul 2>&1
Который обновляет мой регистрключ не беспокойся вообще.Тем не менее, я хочу попробовать и реализовать тот же результат с C # WinForms, и я считаю, что у меня есть правильная формула, но результат не является правильным.
Я попробовал следующее (после проверки, существует ли reg_binary первым и сначала удалив его):
private void button1_Click(object sender, EventArgs e)
{
if (Registry.GetValue(@"HKEY_CURRENT_USER\Software\TestProgram\Kool", "Setting", null) == null)
{
RegistryKey key = Registry.CurrentUser.CreateSubKey(@"Software\TestProgram\Kool");
try
{
var data = Encoding.Unicode.GetBytes("h4h999d27e93f3666188231a018c9d44406136wb");
//Storing the values
key.SetValue("Setting", data, RegistryValueKind.Binary);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
MessageBox.Show(exc.StackTrace);
}
key.Close();
MessageBox.Show("binary key created");
}
else
{
MessageBox.Show("error");
}
}
Что делает ключ не беспокоящимся, но его формат или результат не совпадают с тем, что я получаю, когда делаю это в пакетном режиме, кто-нибудь может объяснить мне, почему?Я получаю тот же результат, что и когда делаю это с моим командным файлом.
Я чувствую, что упускаю что-то простое, может быть, его неправильные байты, я просто не могу это решить.
Я прочитал их для справки: Записать форматированный шестнадцатеричный блок в реестр в двоичном значении Как извлечь значение REG_BINARY из реестра и преобразовать в строку Как я могу прочитать двоичный файлданные из реестра в байтовый массив Считать Registry_binary и преобразовать в строку
Но все равно безуспешно.