Introduction
A simple library to control the registry more easily than using the basic methods proposed by the .NET Framework.
Background
The following DLL simplifies the basic method. A single command per operation and the DLL checks if the key or registry value exists, then applies the command requested and closes the key. The DLL handles errors and logs in a file.
Using the Code
How to correctly delete a SubKey
by .NET Framework solution:
Dim Key As RegistryKey
Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Test", False)
If Key Is Nothing Then
MsgBox("key doesn't exist")
Exit Sub
Else
Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", True)
Key.DeleteSubKey("Test")
Key.Close()
End If
And by this DLL:
Reg_DeleteSubKey("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MyNewSubKey", "Test")
Points of Interest
If a SubKey
or Value
doesn't exist, DLL returns "0
/False
". If an error occurs, a specify messagebox
appears.
Example:
Try
Key.DeleteValue(BV_ValueName, True)
Return "True"
Catch ex As Exception
MsgBox(ex.Message & vbNewLine & BV_TreeKeyName & vbNewLine & "BV_DeleteValue",
MsgBoxStyle.Critical, "BV_DeleteValue")
LogInFile(ex.Message & vbNewLine & BV_TreeKeyName & vbNewLine & "BV_DeleteValue")
Return ex.Message & vbNewLine & BV_TreeKeyName & vbNewLine & "BV_DeleteValue"
End Try
All functions begin with "Reg_
". Do not use the following functions:
ValueTypeLong
MasterFunction
ExistKeyOrValue
These three functions are called by the commands "Reg_
" or "RegF_
".
Precision
The source of the DLL is fully commented in English and French.
The DLL simplifies the most common standard commands. It does not, for example, manage permissions (ACLs). But if you have solutions to improve, do not hesitate to post in the comments or send me a private message.
The operation is very simple, to fully understand, I added a source that uses all functions. For the example in the source, messagebox
is used but in standard use, do not use messagebox
.
Name of Functions
Reg_KeyExist | Function to test, if a SubKey exists | |
Reg_ValueExist | Function to test, if a Value exists |
Reg_SetOrCreateValue | Function for create, edit or set a value |
Reg_CreateSubKey | Function for create a subkey |
Reg_GetDataValue | Function to get the data of a value |
Reg_GetListValueName | Function to get a List (array) of Values |
Reg_GetValueKind | Function to get the Kind of a Value |
Reg_GetSubKeyNames | Function to get a List (array) of SubKeyName |
Reg_DeleteValue | Function to delete a Value |
Reg_DeleteSubKey | Function to delete a SubKey recursively or not |
Reg_LittleName | Function to get the short name of Tree (example HKEY_LOCAL_MACHINE --> HKLM )
|
Reg_CopyValue | Function to copy a Value to another Value by copying its name, data and type If the destination value does not exist, it is created, if it exists, it is replaced)
|
RegF_ConvertStringDefaultInBinary / RegF_ConvertStringASCIIInBinary / RegF_ConvertStringUtf8InBinary | Convert String Utf8/Ascii/Default in Binary
Example : Dim InByte As Byte() = RegF_ConvertStringASCIIInBinary(MyStringToConvert))
|
History
The following is a list of changes available in version 1.4.0.7 of this library.
- Bugfix : Possibility to write in root keys
- Copy a value to another value
- Convert a string to a binary type