Click here to Skip to main content
15,867,756 members
Articles / Programming Languages / Visual Basic
Tip/Trick

DLL Registry Control Easier

Rate me:
Please Sign up or sign in to vote.
4.88/5 (8 votes)
6 Oct 2018CPOL2 min read 13.3K   452   11   3
A simple library to control registry easier

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:

VB.NET
Dim Key As RegistryKey
  Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Test", False)
  If Key Is Nothing Then 'if key exist
      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:

VB.NET
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:

VB.NET
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

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
France France
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
BugSecond download missing? Pin
Tokinabo29-Dec-17 3:50
professionalTokinabo29-Dec-17 3:50 
The second download '..understand how the dll works..' gives the following message:

"/KB/dotnet/1211510/Use_Reg_Control.zip appears to be missing on our servers. D'oh."

You might want to double check..
GeneralRe: Second download missing? Pin
DX901-Apr-18 6:09
DX901-Apr-18 6:09 
GeneralMy vote of 5 Pin
Tokinabo29-Dec-17 3:45
professionalTokinabo29-Dec-17 3:45 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.