Making Windows Your Own

The toolbars in applications, the icons on the Windows desktop, the various splash screens that appear, and the entries in the Start Menu are all designed to appear a certain way when first installed. Unfortunately, the criteria used to make those decisions are often based more on showcasing various aspects of the software than on actually making the application easier to use. So, why settle for the defaults?

Much of the rest of this chapter falls loosely under the category of customizing, but the following topics specifically deal with changing the defaults to make Windows easier to live with.

Tweaking the Start Menu Button

As is Microsoft’s intention, the Start Menu is the starting point for most tasks in Windows Me. It would seem reasonable, then, that one not only should be able to customize this menu with the most commonly used features, but also should be able to rid the Start Menu of the items that aren’t used.

Now, if you didn’t already know it, you can add, remove, and rearrange most of the items in your Start Menu by dragging and dropping (see Section 2.3.3 in Chapter 2 for more information). You can also sort any single menu alphabetically by right-clicking on any entry in the menu and selecting Sort by Name. However, there are certain intrinsic, unmovable entries, such as the Documents and Favorites menus, that not only get in the way if they’re not used, but can make it easier for “prying eyes” to do their prying.

A new feature in Windows Me is " personalized menus,” a process by which some Start Menu items are indiscriminately hidden from time to time, but the lack of any control (other than to disable the feature altogether) makes it virtually useless. See Section 2.3.3 in Chapter 2 for details on dealing with this feature, as well as several ways to selectively hide or disable unwanted Start Menu items.

The button on the Taskbar used to open the Start Menu consists of a small Windows logo and the word “Start.” Although there’s no built-in way to customize this button, advanced users with the correct tools and a little sense of geeky adventure will be able to accomplish this in only a few minutes. Figure 4-5 shows a Start Menu button that’s been customized.

The Start Menu button after some slight alterations

Figure 4-5. The Start Menu button after some slight alterations

Here’s how to edit the various aspects of the Start Menu button. You’ll need a good hex editor to complete either of the following solutions. The example assumes you’re using UltraEdit-32 (available at http://www.ultraedit.com), a very good text editor that can also be used to edit binary files, thereby making it a suitable hex editor.

Warning

If this is done incorrectly, it can damage the application. Anyone who is not somewhat familiar with a hex editor should not attempt this procedure. But if you back up any files before altering them, you eliminate the possibility of permanent damage.

Change the word “Start” (requires a hex editor)

  1. Make two duplicates of the file Explorer.exe (it’s in your \Windows folder). Put one in a safe place, and put the other somewhere convenient, such as on your desktop. The one in the safe place is your backup in case the operation is not successful.

  2. Open the conveniently placed copy of Explorer.exe in your hex editor. (Not only would it be foolish to try to edit the original Explorer.exe, but Windows won’t allow it, because it’s currently in use.) UltraEdit-32 should automatically switch to hex mode once the file is opened.

  3. Select Find from the Search menu, and type 53 00 74 00 61 00 72 00 74 in the Find What field. These numbers are Unicode values in hex and represent the word “Start,” where each letter is separated by a null character (#00). You should find several occurrences of this, but if you look at the “translation” on the right, you’ll notice that each one of them is just part of the phrase “Start Menu”—except for one. In the original release of Windows Me, it’s the last occurrence of Start, located towards the end of the file. Your screen should look something like Figure 4-6.

    Use a hex editor like the one shown to search for the word “Start” in Explorer.exe

    Figure 4-6. Use a hex editor like the one shown to search for the word “Start” in Explorer.exe

  4. Close the Find window when you’ve found the correct occurrence of this value.

  5. You can replace any of the five characters here, but do not change the null characters (represented by dots). You can replace a character either by clicking on it on the right side and typing directly or by clicking on its corresponding hex code on the left side and typing a new code (see Table 4-1 for a listing of hex codes).

    Although you can’t specify a word longer than five characters, you can have a shorter word by including spaces (#20) for the remaining characters.

    If you make a mistake, it is usually easier and safer to simply close the file and reopen rather than trying to repair the damage.

  6. When you’re done, select Save from the File menu, and close the hex editor.

  7. The next step is to put the altered file in place of the existing one. Assuming you’ve made two duplicates of Explorer.exe as recommended earlier, this will be no problem, although you won’t be able to do it while Windows is running. Select Shut Down from the Start Menu, choose Restart in MS-DOS mode, and click OK.

  8. Assuming the altered file was saved on your desktop, you would type the following:

    copy c:\windows\desktop\explorer.exe c:\windows

    Replace c:\windows with the actual location of your copy of Windows, if different.

  9. Type exit to return to Windows. The Start Menu button should now reflect your changes.

Change the icon (requires an icon editor)

  1. Make two duplicates of the file User.exe (it’s in your Windows\System folder). Put one in a safe place, and put the other somewhere convenient, such as on your desktop.

  2. Open the conveniently placed copy of User.exe with an icon editor that can read .dll and .exe files.[59]

  3. Explorer uses the flag logo, the very first icon in User.exe, for the Start Menu button. What you need to be aware of is that there are several versions of this icon in the file, each a different size. Depending on the screen fonts you’ve chosen (in particular, the Active Title Bar setting in the Appearance tab in Display Properties), Windows may be using the 10 x 10, 12 x 12, 14 x 14, 16 x 16, 22 x 22, or 32 x 32 variations. Your best bet is to update them all.

  4. When you’re done, save your changes and close the icon editor.

  5. The next step is to put the altered file in place of the existing one. Assuming you’ve made two duplicates of User.exe as recommended earlier, this will be no problem, although you won’t be able to do it while Windows is running. Select Shut Down from the Start Menu, choose Restart in MS-DOS mode, and click OK.

  6. Assuming the altered file was saved on your desktop, you would type the following:

    copy c:\windows\desktop\user.exe c:\windows\system

    Replace c:\windows with the actual location of your copy of Windows, if different.

  7. Type exit to return to Windows. The Start Menu button should now reflect your changes.

The hex codes for the characters you can use to change the word “Start” in the Start Menu are shown in Table 4-1.

Table 4-1. Abbreviated ASCII Character Set with Hexadecimal Values

A = 41

N = 4E

a = 61

n = 6E

0 = 30

$ = 24

\ = 5C

B = 42

O = 4F

b = 62

o = 6F

1 = 31

% = 25

] = 5D

C = 43

P = 50

c = 63

p = 70

2 = 32

& = 26

^ = 5E

D = 44

Q = 51

d = 64

q = 71

3 = 33

= 27

_ = 5F

E = 45

R = 52

e = 65

r = 72

4 = 34

( = 28

` = 60

F = 46

S = 53

f = 66

s = 73

5 = 35

) = 29

{ = 7B

G = 47

T = 54

g = 67

t = 74

6 = 36

* = 2A

| = 7C

H = 48

U = 55

h = 68

u = 75

7 = 37

+ = 2B

} = 7D

I = 49

V = 56

i = 69

v = 76

8 = 38

, = 2C

~ = 7E

J = 4A

W = 57

j = 6A

w = 77

9 = 39

- = 2D

K = 4B

X = 58

k = 6B

x = 78

! = 21

. = 2E

L = 4C

Y = 59

l = 6C

y = 79

" = 22

/ = 2F

M = 4D

Z = 5A

m = 6D

z = 7A

# = 23

[ = 5B

Change Installation Defaults

During the installation of Windows, you (or one of your cronies) were asked to enter your name and company name, as well as the CD key on the back of your CD jacket. Those and other settings that result from the installation are all written to the Registry at the end of the installation process. Fortunately, it’s easy to change these values when they pose problems, even long after the installation has been completed. All of these values are stored in the Registry, so go ahead and fire up the Registry Editor (see Chapter 3 for details), and try the following solutions.

Registered user

Your registered name and company name are not only displayed in Windows’ various About boxes, but are inserted as the default name and company name for installation of many third-party applications. Although there’s the possibility that you may have misspelled your own name during installation, it’s more likely that your computer came with Windows preinstalled, so the registered user is something like “Dell Customer.” Whether you’ve bought your computer from someone else, switched employers, or simply decided to drop your middle initial, you shouldn’t be stuck with those old defaults:

  1. Expand the branches to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion.

  2. To the right, among a myriad of settings, are the three settings in which we’re interested. You can change RegisteredOwner (your name) and RegisteredOrganization (your company) to anything you want simply by double-clicking on them and typing.

  3. Your changes will take effect immediately.

Changing the registered-user values will only change the registered-user information for Windows, not for the applications already installed on your system, most of which store registered-user information separately from Windows.

CD key

Why would you want to change the CD key? Well, subsequent installations of Windows (but not newer versions) will require that you enter the CD key again. However, setup checks the current installation, and if what you enter doesn’t match the Registry value, Windows setup won’t let you continue. Perhaps you purchased your system with Windows preinstalled, but didn’t get a Windows CD:

  1. Expand the branches to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion.

  2. The ProductKey value contains the CD key used during the last installation of Windows. Make sure to replace it with the full 25 digits, since the Setup dialog box will allow no fewer and no more than 25 digits.

Installation path

The drive letter for your CD drive was recorded during installation, theoretically making it easier to find the CD whenever you add a driver or optional Windows component later on. For example, if your CD drive is drive D:, then the original installation path would be d:\win9x. All it takes is a simple hardware upgrade to change your drive letters, thereby invalidating this setting.

If you find yourself accessing the CD frequently to add or remove drivers or optional Windows components, you might want to abandon the CD altogether, instead storing the Windows Me distribution files on your hard disk. That way, whenever you add or remove a Windows component or add any new drivers, the files will be read right off the hard disk, quickly and without any prompts. If you have the space (it requires a little over 100 MB, which many of you probably won’t be able to spare), you can just copy the contents of the \win9x folder on your CD into any out-of-the-way folder on your hard disk (\windows\install is a good place). Don’t bother copying any of the other folders, including the \win9x\ols folder, which is just used for the bothersome “Online Services” files.

Regardless, follow these steps to change the default installation path:

  1. Expand the branches to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup.

  2. In this key, you’ll see most installation directories used for things like the temporary install directory,[60] the location of the \Windows\System folder (don’t change this), and, of course, the location of the setup files.

    Double-click on the SourcePath value to change it. If you’re specifying a new location of your CD drive, type d:\win98\, where d: is the drive letter of your CD drive. Otherwise, just include the full path of the location of the distribution files, wherever they may be.

If you’ve changed the location for Windows setup files, Windows will simply prompt you for the correct location when it needs them. So there’s no danger of not being able to install drivers if you specify an incorrect or obsolete folder for the SourcePath value.

Add New Folder Options

At first glance, the Advanced settings list in Explorer’s Folder Options window is presented in a somewhat awkward list format, apparently to accommodate the large number of options. (This window is accessible by selecting Folder Options from Explorer’s Tools menu or by double-clicking the Folder Options icon in Control Panel and choosing the View tab.) However, the less-than-ideal presentation is actually designed to allow customization, permitting you to add or remove items from the list. See Figure 4-7 for an example of a customized version of this window.

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

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

Although this process isn’t necessarily intended for you to extend or change any particular features of Explorer, it does allow you to provide a fairly clean interface for virtually any Registry setting (including any that might affect Explorer). 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 in a workgroup that you administer), reducing the need for them to mess around in the Registry. You can also remove unwanted options that you don’t want easily changed.

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 other Registry settings. The downside is that the syntax requires that numerous parameters be typed, which can be cumbersome. The following procedure should allow you to make changes to existing settings, as well as add your own settings fairly easily:

  1. Open the Registry Editor (if you’re not familiar with the Registry Editor, see Chapter 3).

  2. Expand the branches to: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced.

    Notice that the actual hierarchy in the Folder Options window is reproduced here in the Registry, although the list items may appear in a different order than their corresponding Registry entries. This is because the list captions aren’t necessarily the same as the names of the corresponding Registry keys, 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 Registry File from the Registry 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 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 key, keeping the hierarchy in mind—for example, are you adding an option to an existing group or are you creating a new group for additional options? Name the key anything you want, although the more descriptive, the better.

  6. The values inside each key determine the key’s properties. To add a property to the key, create a new value named for one of the properties. Then, double-click on it, and type the contents for the value, as described in the following tables. Table 4-2 lists the properties that affect the visual appearance of a specific item, and Table 4-3 lists the properties that affect what happens when a specific item is turned on or off in the Folder Options window.

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

Table 4-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 each 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 is the icon used for folder items. By default, it’s a rather ugly bent arrow. The syntax filename,index is the same as for the DefaultIcon property for file types, as documented in Section 3.11 in Chapter 3. You can omit filename and instead specify only a number (the comma is still required) to use the default selection of rather ugly icons. For example, you can use ,207 for the default folder icon, but it’ll be blac-k-and-white instead of yellow. This parameter is required for all folders; it does not affect checkboxes and radio buttons.

HelpID

String

This is the filename and optionally the help context ID of the help 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 help context id of the topic you want to display. This parameter is optional.

Table 4-3. Registry 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, 80000004 for HKEY_PERFORMANCE_DATA, 80000005 for HKEY_CURRENT_CONFIG, and 80000006 for HKEY_DYN_DATA. For some reason, it must be separated from the rest of the Registry path, specified in RegPath, later. This parameter is required for all checkbox and radio items.

RegPath

String

This is the path of the Registry 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 in which the setting data is stored when the option is turned on or off in the Folder Options window. The target key is specified in the RegPath and HKeyRoot parameters, listed earlier. This parameter is required by all checkbox and radio items.

CheckedValue

Should match target value datatype

This holds the data to be stored in the target Registry value specified by the RegPath and ValueName parameters earlier, when said option is turned on. If you’re configuring an option to be used on both Windows 9x/Me and Windows NT/2000 systems, use both the CheckedValueW95 and CheckedValueNT parameters instead. This parameter is required by all checkbox and radio items.

UnCheckedValue

Should match target value datatype

This holds the data to be stored in the target Registry value specified by the RegPath and ValueName parameters above, when said option is turned off. This value is optional; if omitted, it is assumed to be 0.

DefaultValue

Should match target value datatype

This is the default value, used only if the target Registry value (specified by the RegPath and ValueName parameters listed earlier) does not 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.

  1. After you’ve created keys and entered the appropriate property values, your Registry should look something like Figure 4-8, and the resulting Folder Options window should look like Figure 4-7.

    If you try to add a setting using the previous procedure and it doesn’t show up in Folder Options, maybe something’s missing. Make sure you include all the required property values for the item in question.

  2. Close the Registry Editor when you’re finished.

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

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

The examples shown in Figure 4-7 and Figure 4-8 shows how another solution in this book (Section 4.1.1.3 of Section 4.1.1 earlier in this chapter) can be turned into an advanced Folder Options setting. Here, a single checkbox allows you to easily turn on and off the Rename and Delete commands in the Recycle Bin’s context menu.

When the Folder Options dialog box is displayed, each option is set according to the value of the setting specified by ValueName; the value is simply compared with CheckedValue and UnCheckedValue and then set accordingly. When the OK button is pressed in Folder Options, the settings in the Registry are then written using the same criteria.

To reproduce a setting elsewhere in the Windows interface or the interface of a third-party application, you’ll first need to find the respective Registry setting—see Section 3.6 in Chapter 3 for more information.

See Chapter 3 for more information on Registry patches, a good way to reproduce your customization on any number of computers. Note, however, that because Registry patches can’t be used to remove Registry keys, you’ll have to use WSH scripts if you want to automate the removal of items from advanced Folder Options settings (see Section 3.7 in Chapter 3 for more information).



[59] Go to http://www.annoyances.org for downloadable software, such as icon editors.

[60] The temporary install path (specified in the SetupTempDir value) is the directory that Windows setup will use to store about 80 MB of data when you install. If you’re running low on disk space and have another drive or partition with more space, you can redirect this folder so that subsequent installations of Windows will have the room they need to complete.

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.