Создайте пустое значение REG_NONE в реестре Windows через С#

Как создать пустое значение в реестре Windows с типом REG_NONE?

Например, для этого ключа:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\
  .htm\OpenWithProgids

Вот значения, которые я вижу на моей машине Windows 7:

----------------------------------------------------
Name           Type       Data
----------------------------------------------------
(Default)      REG_SZ     (value not set)
FirefoxHTML    REG_NONE   (zero-length binary value)
htmlfile       REG_NONE   (zero-length binary value)
----------------------------------------------------

В частности, как объявить и инициализировать переменную типа "двоичное значение с нулевой длиной" для передачи ее в RegistryKey.SetValue? Обратите внимание, что я не смог найти помощь, которая мне нужна в документации для RegistryValueKind перечисления.

Ответ 1

[Вот результат моих исследований.]

Я нашел подсказку, которую я искал в справочном источнике Microsoft для RegistryKey.cs:

byte[] value = new byte[0];

В частности, вызовите RegistryKey.SetValue, где:

 using Microsoft.Win32;

 RegistryKey key; // set via 'CreateSubKey' or 'OpenSubKey'
 key.SetValue("KeyName", new byte[0], RegistryValueKind.None);

Однако обратите внимание, что, по крайней мере, для значений, отображаемых в ключе OpenWithProgids, Windows также воспринимает пустые значения строк как эквивалентные:

 key.SetValue("KeyName", string.Empty, RegistryValueKind.String);

Например, для этого ключа:

HKEY_CLASSES_ROOT\.vcxproj\OpenWithProgids

Вот значения, которые я вижу на моей машине:

---------------------------------------------------------------
Name                                  Type      Data
---------------------------------------------------------------
(Default)                             REG_SZ    (value not set)
Expression.Blend.vcsproj.12.0         REG_SZ
VisualStudio.Launcher.vcxproj.10.0    REG_SZ
VisualStudio.Launcher.vcxproj.12.0    REG_SZ
VisualStudio.vcxproj.10.0             REG_SZ
VisualStudio.vcxproj.12.0             REG_SZ
---------------------------------------------------------------

Связанный: См. этот ответ и этот ответ для примеров того, как для установки данных значения реестра типа RegistryValueKind.Binary для непустого байтового массива.