Logo
programming4us
programming4us
programming4us
programming4us
Home
programming4us
XP
programming4us
Windows Vista
programming4us
Windows 7
programming4us
Windows Azure
programming4us
Windows Server
programming4us
Windows Phone
 
Windows Vista

Registry Tasks and Tools (part 3) - Create an Interface for a Registry Setting

- How To Install Windows Server 2012 On VirtualBox
- How To Bypass Torrent Connection Blocking By Your ISP
- How To Install Actual Facebook App On Kindle Fire
9/22/2011 5:01:13 PM

4. Create an Interface for a Registry Setting

The whole point of messing around in the Registry is to view and modify settings that are otherwise inaccessible in Explorer, Control Panel, or the hundreds of dialog boxes scattered throughout the operating system. However, there is a way to patch into the interface and add checkboxes and radio buttons that are linked to whatever Registry settings you want.

Why would you want to do this? Perhaps there's a Registry setting you change frequently, or maybe you administer a building full of PCs and there's a feature you want to expose to your users without having them mess around with the Registry themselves.

Start by going to Control Panel → Folder Options → View menu. At first glance, the Advanced settings list in this dialog box is presented in a somewhat awkward format, apparently to accommodate the large number of options. However, the less-than-ideal presentation is actually designed to allow customization, permitting Microsoft (or you) to easily add or remove items from the list. See Figure 3 for an example of a customized version of this window.

Figure 3. The Advanced Folder Options dialog box is a flexible, customizable list of Registry settings


You've probably guessed that Microsoft didn't make this list of options customizable for you. Rather, it was designed to accommodate different settings for different versions of Windows (the actual options present on your PC, for instance, depend on your edition of Vista). But that doesn't mean you can't change it around to suit your needs.

The idea is that you link up a checkbox or radio button to a value—any value you choose—in your Registry. This would, for example, allow you to make certain Registry changes accessible to yourself or others (such as users of other PCs you administer), reducing the need for them to mess around in the Registry. Or, if you're a software developer, you can add your own program's options to this window. Or, maybe you just want easier access to a hidden Microsoft setting you find yourself changing often.

The format is actually quite remarkable, because you don't have to be a programmer to utilize this feature. You can add new options to a certain portion of the Registry and then tie those options to values you choose anywhere else in the Registry. The downside is that it's a little cumbersome to type it all out, and the options are rather limited. Here's how you do it:

  1. Open the Registry Editor.

  2. Expand the branches to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder.

    Take a look at the keys inside of the Folder key. The structure of the hierarchy in the Folder Options window is reproduced here in the Registry, although the list items will appear in a different order than their corresponding Registry entries. This is because the captions in the Folder Options list aren't necessarily the same as the names of the corresponding Registry keys here, yet both collections are sorted alphabetically. For example, the Remember each folder's view settings option is represented by the ClassicViewState key in the Registry.

  3. Take this opportunity to back up the entire branch by highlighting the Advanced key and selecting Export from the File menu. This way, you'll be able to easily restore the defaults without having to reinstall Windows.

  4. At this point, you can remove any unwanted entries by deleting the corresponding keys from this branch; the Text value in each key should be enough to explain what each key is for.

  5. To add a new item, start by simply creating a new subkey in the Advanced key. Name the key anything you want, as long as it doesn't conflict with a existing key name. Bonus points for a nice, descriptive key name.

    Some settings are divided into groups, such as Hidden files and folders, which contains two radio buttons. You can create a new group using the existing Hidden key as a template. Then, add new entries to your group by placing subkeys inside your new group key.


  6. The values inside each key determine the properties of the corresponding setting. Feel free to fish around the existing keys for examples.

    Start by adding a new string value to your key named Text, and then double-click it to enter the caption of the new entry. When you're done, add another string value named Type, and type either group, checkbox, or radio as the value's contents. These two values, plus the others that determine how your new setting looks in the Folder Options window, are explained in Table 2.

    Table 2. Visual properties of Folder Options items
    Value name Datatype Description of value contents
    Type String This can be set to either group, checkbox, or radio, representing a folder, checkbox, or radio button, respectively. Checkboxes are square options and can be either on or off. Radio buttons are round options that are linked to other radio buttons in the same folder, in that only one at a time can be selected (you can have multiple groups of radio buttons). And folders, of course, are used to organize the various other options. This parameter is required by all items.
    Text String This is the actual caption of the option as it will appear in the dialog box. This can be as long as you want (better too descriptive than too vague), but the paradigm dictates that only the first word be capitalized and that there be no period. This parameter is required by all items.
    Bitmap String This specifies the icon, used for folder items only. If omitted, it's a rather ugly bent arrow. The syntax[5] is filename, index, where filename is the full path and filename of the file containing the icon, and index is the icon number (starting with zero), if the file contains more than one icon. To specify the familiar yellow folder, type %SystemRoot%\system32\Shell32.dll,4 here. This parameter is optional for all folders, and has no effect on checkboxes and radio buttons.
    HelpID String This is the filename and optionally the help context ID, pointing to the documentation for this item. If the user selects the item and presses the F1 key, this specifies the help note that will appear. The syntax is filename#id, where filename is the name of a .hlp or .chm file, and id is the numeric help context id (commonly used by programmers) of the topic you want to display. Omit id to simply show the index page of the specified help file. This parameter is optional.
    [5]

  7. Next, add values—explained in Table 3—to specify what happens when a specific item is turned on or off in the Folder Options window. For radio and checkbox items, you'll need the following values: HKey-Root, RegPath, ValueName, and CheckedValue. (This step isn't necessary if your item is a group.)

    Table 3. Registry-related properties of Folder Options items
    Value name Datatype Description of value contents
    HKeyRoot DWORD This is an eight-digit number representing the root of the Registry path containing the target Registry setting. Use the hexadecimal number 80000000 for HKEY_CLASSES_ROOT, 80000001 for HKEY_CURRENT_USER, 80000002 for HKEY_LOCAL_MACHINE, 80000003 for HKEY_USERS, or 80000005 for HKEY_CURRENT_CONFIG. For some reason, it must be separated from the rest of the Registry path, specified in RegPath, discussed next. This parameter is required for all checkbox and radio items.
    RegPath String This is the path specifying the location of the target Registry setting, not including the root (see HKeyRoot, earlier). For example, for HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion, you would only enter Software\Microsoft\Windows\CurrentVersion here. This parameter is required for all checkbox and radio items.
    ValueName String This is the name of the target Registry value. This value is where the setting data is stored when the option is turned on or off in the Folder Options window. The key containing said value is specified by the RegPathHKeyRoot parameters, listed earlier. This parameter is required by all checkbox and radio items. and
    Checked- Value Should match target value datatype This holds the data to be stored in the target Registry value (specified by the RegPath and ValueNameon. If you're configuring an option to be used on both Windows 9x/Me and Windows Vista/2000 systems, use both the CheckedValueW95 and CheckedValueNT parameters instead of this value. This parameter is otherwise required by all checkbox and radio items. parameters earlier), when said option is turned
    CheckedValueW95 Should match target value datatype Use this instead of CheckedValue, above, if you're configuring an option to be used on both Windows 9x/Me and Windows Vista/2000 systems. This value contains the data that will be applied if the system is running Windows 9x/Me. Used in conjunction with CheckedValueNT, discussed next.
    CheckedValueNT Should match target value datatype Use this instead of CheckedValue, discussed earlier, if you're configuring an option to be used on both Windows 9x/Me and Windows Vista/2000 systems. This value contains the data that will be applied if the system is running Windows Vista, 2000, or NT. Used in conjunction with CheckedValueW95, later.
    UnCheckedValue Should match target value datatype This holds the data to be stored in the target Registry value, when said option is turned off. This value is optional; if omitted, it is assumed to be 0.
    Default- Value Should match target value datatype This is the default value, used only if the target Registry value does not already exist. As soon as the option in the Folder Options window is turned on or off at least once, this parameter is ignored, and Windows instead reads the state of the target value, comparing it to CheckedValue and UnCheckedValue to determine if the option should appear checked or unchecked. This value is optional; if omitted, it is assumed to be 0.

    The value type (String, Binary, DWORD) of the CheckedValue, UnCheckedValue, and DefaultValue parameters all depends on what the target value requires. For example, if the target value you're changing is a DWORD value, then all three of these parameters must also be DWORD values.


  8. After you've created keys and entered the appropriate property values, your Registry should look something like Figure 4, and the resulting Folder Options dialog box should look like Figure 3, shown earlier. If Folder Options is open, you'll have to close it and reopen it for the changes to take effect.

    Figure 4. Settings that appear in the Advanced Folder Options list are configured in the Registry

    If you add a setting and it doesn't show up in the Folder Options window (after closing and reopening it), most likely one or more required values are missing.


  9. Close the Registry Editor when you're finished.

When the Folder Options dialog box is first displayed, the current data stored in each target value is compared with the corresponding CheckedValue and UnCheckedValue, and the option in the Advanced settings list is set accordingly. In other words, if you did everything right, each option in Advanced settings should reflect its own current state. Change a setting and click OK, and the corresponding options are written to the Registry.

Other -----------------
- Registry Tasks and Tools (part 1) - Search the Registry & Search and Replace Registry Data
- The Registry (part 1) - The Registry Editor & The Structure of the Registry
- Custom Startups Using the Boot Configuration Data (part 2) - Using BCDEDIT to Customize the Startup Options
- Custom Startups Using the Boot Configuration Data (part 1) - Using Startup and Recovery to Modify the BCD & Using the System Configuration Utility to Modify the BCD
- Customizing and Troubleshooting the Windows Vista Startup : The Boot Process, from Power Up to Startup
- Using Control Panel and Group Policies : Implementing Group Policies with Windows Vista
- Using Control Panel and Group Policies : Operating Control Panel
- Troubleshooting Device Problems
- Managing Your Hardware with Device Manager
- Getting the Most Out of Device Manager : Tips and Techniques for Installing Devices
 
 
Top 10
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 2) - Wireframes,Legends
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 1) - Swimlanes
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Formatting and sizing lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Adding shapes to lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Sizing containers
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 3) - The Other Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 2) - The Data Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 1) - The Format Properties of a Control
- Microsoft Access 2010 : Form Properties and Why Should You Use Them - Working with the Properties Window
- Microsoft Visio 2013 : Using the Organization Chart Wizard with new data
- First look: Apple Watch

- 3 Tips for Maintaining Your Cell Phone Battery (part 1)

- 3 Tips for Maintaining Your Cell Phone Battery (part 2)
programming4us programming4us
Popular tags
Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 windows Phone 7 windows Phone 8
programming4us programming4us
 
programming4us
Natural Miscarriage
programming4us
Windows Vista
programming4us
Windows 7
programming4us
Windows Azure
programming4us
Windows Server
programming4us
Game Trailer