How can I create an empty value in the Windows Registry that has the type REG_NONE
?
For instance, for this key:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\
.htm\OpenWithProgids
Here are the values that I see on my Windows 7 machine:
----------------------------------------------------
Name Type Data
----------------------------------------------------
(Default) REG_SZ (value not set)
FirefoxHTML REG_NONE (zero-length binary value)
htmlfile REG_NONE (zero-length binary value)
----------------------------------------------------
Specifically, how do I declare and initialize a variable of type "zero-length binary value" for the purpose of passing it to RegistryKey.SetValue? Note that I could not find the help that I needed in the documentation for the RegistryValueKind enumeration.
[Here is the result of my research.]
I found the hint I was looking for in Microsoft's reference source for RegistryKey.cs:
Specifically, call RegistryKey.SetValue where:
name
is set to the name you want for the key,value
is set to an empty byte array, andvalueKind
is set to RegistryValueKind.None.However, note that at least for values that appear in an
OpenWithProgids
key, Windows also appears to treat empty string values as equivalent:For instance, for this key:
Here are the values that I see on my machine:
Related: See this answer and this answer for examples for how to set the data of a Registry value of type
RegistryValueKind.Binary
to a non-empty byte array.