1. Where does Windows look for the programs it runs on startup?
A question often asked by new programmers (or by many other computer users for that matter) is
how Windows decides what programs to run when it starts. When your computer is switched on, Windows
looks in several places to decide what programs are run first. Files in any of these places will be
run as Windows starts up:
- Under Windows NT / 2000 / XP any programs run as services will be run.
-
Windows looks in the registry under the following keys. Note that HKCU is short for
HKEY_CURRENT_USER and HKLM is short for HKEY_LOCAL_MACHINE:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices (possibly)
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
Also there are similar keys which are run once then removed:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
- Windows runs files in the \Windows\Start menu\Programs\Startup folder. This folder may contain
links in which case the actual program being run will reside in another place.
- The WIN.INI file may contain programs which are run.
- The \AUTOEXEC.BAT file may contain programs which are run.
As an experiment, a Windows Laptop with Internet Explorer v4 was started, and Spy++ was used to
list the runing processes on startup:
kernel32
systray (run from the registry)
loadwc (run from the registry)
winampa (run from the registry)
spyxx
explorer
imgicon (run from Startup folder)
mmtask
spower
msgsrv32
mprexe
The 4 module names followed by comments could be prevented from loading on startup by removing
them from the registry and the startup folder. Removal of Systray prevented the Windows tray icons
from being displayed. Removal of Winampa prevented winamp from showing up in the system tray,
although it could still be started by running the EXE file. Removal of imgicon did not prevent the
Iomega 100 MB Zip drive from working. Kernel32 and Explorer are key tasks which are part of
Windows. Spower is power saver software for the laptop. Mprexe is the multi provider EXE file for
networking.
Also, "Loadwc.exe" was used to start Internet Explorer. After installing a new ISP (Tiscali) the
computer always started Internet Explorer on boot-up, then displayed a "page not found" error
message because the laptop uses dial-up access and was not connected to the internet. It seems the
Tiscali installation somehow modified the registry or "loadwc.exe" to start Internet Explorer on
boot-up. Removing "loadwc.exe" from the registry setting
"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" fixed the problem. Also, running "loadwc.exe"
from the command line (it was in \Windows\System) caused Internet Explorer to start and display the
same "page not found" message. Therefore it seems Tiscali used the registry key mentioned for
start-up programs.
2. How do I remove programs that don't want to be uninstalled?
Programs in Windows are normally uninstalled with Start - Settings - Control panel - Add/Remove
programs. This usually works, but if a program was not installed properly or it was deleted by
hand, the Add/Remove programs command will not be able to remove the program and its name will
remain in the list of removable programs for evermore. This can be annoying, but you can edit the
list of removable programs which is stored in the registry. Write down the name(s) of the programs
to remove from the Uninstall list, then start RegEdit (Start - Run - regedit). Once RegEdit is up,
look for the following key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
There should be a long list of all the programs the Control Panel thinks it can uninstall. Some
of them won't show up in the uninstall list, presumably because Windows likes to uninstall them on
its own. Note how each program includes the name, and a command string that is executed to
uninstall the program. Look through the list for the program you want to remove from the uninstall
list, then delete it. This should prevent it showing up in Add/Remove programs the next time you
run the control panel.
Be careful to delete the right program. If you delete the wrong one you will not be able to
uninstall it from the control panel. Unfortunately RegEdit makes changes to the registry as it
runs, it stores the registry in "\windows\system.dat" and a backup copy in "\windows\system.da0".
Both these are hidden system files. If you deleted the wrong program one of the following should be
possible:
- Run RegEdit on the backup copy of the registry and see what the command is to uninstall the
program. Then run the uninstall command by hand.
- Reinstall the program from the original disks, which should copy all the files across and
update the registry settings. Then you should be able to uninstall it in the normal way.
3. How do I stop Windows from hiding my menus?
Windows has a "feature" where it hides infrequently used menu items on the Start - Programs menu
and on other menus. This is about as helpful as a car that hides the hazard warning light switch
because it hasn't been used for a while. This annoying feature can be deactivated as follows:
- Click Start - Settings - Control Panel - Taskbar and Start menu, General, then uncheck "Use
Personalized Menus".
- Click Start - Settings - Control Panel - Internet Options, Advanced then uncheck "Enable
Personalized favorites menu".
Refer to Microsoft Knowledge Base Article Q230596 for more information.
4. How do I make Windows use the correct date/time format in an MS-DOS
window?
The date and time format in Windows is set from the control panel (Start - Settings - Control
Panel), then double clicking the Regional Settings icon, and choosing the correct area from the
list. If you change the date / time format you may have to reboot afterwards.
However the date / time format for a DOS prompt is set differently. This will be familiar to
MS-DOS users but Windows users may not know how. The DOS date / time format is set in a
"config.sys" file which is stored in the root directory. This is a text file that can be edited
with Edit or Notepad. Open the file and add a line at the end "COUNTRY=044" to set the format for
the country you are in. 044 = UK, 061 = Australia etc. The country number is usually the same as
the International Direct Dial code. Save and close the "config.sys" file, and the changed code will
take effect the next time you start the DOS prompt.
This will not work for a DOS prompt under Windows ME, since Microsoft have followed the
engineering principle "if it ain't broke, let's change it". Windows ME no longer parses
"config.sys" or "autoexec.bat". Instead the keyboard settings for a DOS prompt are changed using
the MSCONFIG utility. Type Start - Run - Msconfig to start the program, and click on the
International tab. Change the settings as follows:
- Language. This can be left at "Current Language Settings". If you change it, MSCONFIG
may change the file names to include full paths, which is not wanted.
- MS-DOS Code Page. Leave at 850 for Western keyboards and character sets.
- Country Code. This is the dialing code and should be 044 for the UK etc.
- Country Data File Name. This is the country driver file, and should be "country.sys". If
you change the Language, Windows may put a path in here which is not wanted. See KB article
Q272719.
- Display Data File Name. This should be "ega.cpi". Again this should not include a
path.
- Keyboard Data File Name. This should be "keyboard.sys". Again this should not include a
path.
- Keyboard Type, Keyboard Layout. Leave these blank.
- Language ID. This is equivalent to the "keyb.sys" driver in earlier versions of Windows
and should match the actual keyboard layout. If you are using a non-US keyboard with national
currency symbols, accented characters etc, the Language ID should be the two letter country code in
lower case. Eg "uk" for the Uk etc.
After confirming the entries, press OK and get ready to reboot. If it doesn't work, check the
driver files don't include paths, check the country code has a leading zero if required (eg 044 for
UK) and check the two-letter language ID.
5. Microsoft Word Annoyances
Microsoft have "improved" Word so that whenever you type a web address www.somewhere.com it
highlights it using a special hyper-link font. The idea is you can click on the link and go to the
site. Unfortunately the link is highlighted using a different font, which is annoying when you're
writing documents that discuss web sites. Also Word is a word processor not a browser, and it's
annoying having internet connection dialogs appearing just because you click on a web address in a
word processed document. To turn off this auto-conversion:
- Use the Insert - Autotext - Autotext menu choice.
- Click the "Auto-format as you type" tab.
- Uncheck "Internet and network paths with hyperlinks".
- You may also want to unckeck "straight quotes with smart quotes".
- Click OK when done.
Also in Word, sometimes you want to insert pictures that aren't locked to the page, but can be
edited and left or right or center aligned. To do this:
- Use the Insert - Object menu choice.
- Click the "Create New" tab.
- Choose "Microsoft Word picture" from the scrolling list.
- Uncheck "Float over text". This makes it possible to align the picture.
- Uncheck "Display as icon", in order the picture is fully visible.
- Click OK, which takes you into the Word picture editor.
- The picture editor lets you draw lines, blobs, group and ungroup elements, add 3D effects, and
import bitmaps.
- After editing the picture, you may want to adjust the boundaries to expand or shrink the edges
to match what you've drawn. Use the "Reset Picture Boundary" button to reset the boundaries. The
button resides on the "Edit picture" toolbar. If the toolbar is not visible, use View - Toolbars -
Edit Picture to make the toolbar visible. This is only possible while the picture editor is
active.
- After editing the picture, close the picture editor by clicking the "Close Picture" button,
which is on the "Edit Picture" toolbar. The picture editor and its toolbar will disappear.
- Back in the main document, the picture can be cut and pasted or aligned in the same way as a
normal paragraph. Also it can be re-edited by double clicking it.
6. How does CD-ROM Autorun work?
CD-ROMs have an auto-run feature, whereby a program or file on the CD-ROM can start
automatically when the CD is inserted. The auto-run action is defined by the autorun.inf file on
the CD. If auto-run is a nuisance, it can be deactivated in several ways:
- Hold down the Shift key while the CD is inserted. You may have to keep the key held down for 10
seconds or so, while the CD spins up to speed.
- Another method only works under Windows NT / 2000 / XP and is described in KB article Q155217.
Set the autorun value in the registry key HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Services\
CDRom\ to zero to disable auto-run. Setting Setting autorun to 1 will enable it. The computer needs
to be rebooted afterwards.
- There is a different method that works with Windows 95. Go to Start - Settings - Control Panel
- System - Device manager, open the CD-ROM branch, and double click the offending CD-ROM drive.
This should bring up a tabbed properties dialog for the CD-ROM. Click the Settings tab, and uncheck
"Auto-insert notification". Click OK twice to close the dialogs, then close the control panel. You
may need to reboot the computer. Refer to KB articles Q126025 and Q141059 for more details.
It is possible to test auto-run without creating a new CD-ROM. Under Windows 95 and Windows NT /
2000 / XP there is a registry value HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\
CurrentVersion\ Policies\ Explorer\ NoDriveTypeAutoRun containing hexadecimal binary data (a
DWORD). The DWORD is one or more flag bits that disable auto-run on the specified drive. Here are
the flags and their values:
DRIVE_UNKNOWN 0
DRIVE_NO_ROOT_DIR 1
DRIVE_REMOVABLE 2
DRIVE_FIXED 3
DRIVE_REMOTE 4
DRIVE_CDROM 5
DRIVE_RAMDISK 6
(reserved for future use) 7
The default value is 0x95 (0x90 | 0x5) that means DRIVE_UNKNOWN, DRIVE_REMOVEABLE, DRIVE_REMOTE
and "reserved" don't use auto-run. The other drives (DRIVE_NO_ROOT_DIR, DRIVE_FIXED, DRIVE_CD_ROM
and DRIVE_RAMDISK) will use auto-run. The auto-run choice is shown when you right-click the
autorun.inf file. Refer to KB article Q136214 for more details.
|