Automating the Deletion of Registry Items

An important drawback to using Registry patches is that they can be used only to replace or augment information in the Registry. No provision for removing keys or values is included in Registry patches, yet some important changes can only be made by removing keys or values. For example, to remove the Bitmap Image entry from Explorer’s New menu, you need to delete the key HKEY_CLASSES_ROOT\.bmp\ShellNew entirely, and no Registry patch can do that.

Here, we enlist the services of the Windows Script Host, which includes a functionality for manipulating Registry information. Chapter 9 documents writing scripts for the Windows Script Host and, in particular, Registry functions like the one used in this solution:

  1. Open a plain-text editor, such as Notepad, and type the following:

    Call RegistryDelete("HKEY_CURRENT_USER\.bmp\ShellNew", "")
    
    Sub RegistryDelete(KeyName, ValueName)
      Set WshShell = WScript.CreateObject("WScript.Shell")
      WshShell.RegWrite KeyName & "\" & ValueName, ""
      WshShell.RegDelete KeyName & "\" & ValueName
    End Sub

    The first line invokes the RegistryDelete subroutine, listed immediately after. Simply put the full path of the Registry key you wish to delete between the quotation marks, making sure not to include a trailing slash (a “\” at the end).

    To delete a single value rather than an entire key, specify the value name between the second pair of quotes, like this:

    Call RegistryDelete("HKEY_CURRENT_USER\.bmp", "Content Type")

    To remove ...

Get Windows Me Annoyances now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.