Objective
Prove the ideas of this chapter on your own PC: find the applet files, find which file hosts which applet, open applets by name, and follow one setting from the window you click to the registry value Windows saves. Everything is read-only, except one small, optional mouse-speed change that you undo straight away.
Time: 25–30 minutes
You need: A Windows PC. No extra software is required. (One free optional tool is named in Part 5.)
What to Open
| Tool | How to open it |
|---|---|
| Control Panel | Press Win + R, type control, press Enter |
| PowerShell | Press Win, type PowerShell, press Enter (normal, not admin) |
| Registry Editor | Press Win + R, type regedit, press Enter (view only, change nothing) |
| Run box | Win + R |
Part 1: Find the Applet Files (the .cpl DLLs)
In PowerShell:
Get-ChildItem C:\Windows\System32\*.cpl | Select-Object Name, Length- How many
.cplfiles does your PC have? ________________ - Is
main.cplin the list? ________________ - Is
desk.cplin the list? (It is the old Display applet; Display has moved to Settings.) ________________
Part 2: Which File Hosts Which Applet?
Open each by name from the Run box (Win + R) and fill in the table. Close each window after looking. These only open windows.
| Type in Run box | Applet that opens | Does it open the classic window or the Settings app? |
|---|---|---|
main.cpl | ________________ | ________________ |
ncpa.cpl | ________________ | ________________ |
appwiz.cpl | ________________ | ________________ |
sysdm.cpl | ________________ | ________________ |
timedate.cpl | ________________ | ________________ |
intl.cpl | ________________ | ________________ |
powercfg.cpl | ________________ | ________________ |
mmsys.cpl | ________________ | ________________ |
Now try the "run through a helper" way from Section 2.2. In PowerShell:
rundll32.exe shell32.dll,Control_RunDLL main.cpl- Does it open the same Mouse window as typing
main.cpl? ________________
Next, try the canonical names (Section 2.3). Each opens a window:
control /name Microsoft.PowerOptions
control /name Microsoft.NetworkAndSharingCenter
control /name Microsoft.ProgramsAndFeatures
- Do all three open? ________________ (If one opens the Settings app instead, it has been redirected. That is normal.)
Part 3: Which Window Hosts the Applet? (Task Manager)
-
Press
Ctrl + Shift + Escto open Task Manager. Open Details. -
Open
main.cplfrom the Run box. Look for new entries such ascontrol.exeorrundll32.exe, or justexplorer.exedoing the work. -
Close the Mouse window and see the entry disappear.
-
Which process name appeared, if any? ________________
What this shows: The applet is not a program of its own. It runs inside a host process, as Section 2.2 explained. Which host you see can depend on how you opened it and on your Windows version. Any answer is fine.
Part 4: Look at the Registry (Applet Registration and a Saved Setting)
4A. The list of modern applets. In regedit go to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace
- How many GUID keys can you see? ________________
Look only. Do not edit, rename or delete anything.
4B. The saved mouse setting. In PowerShell:
Get-ItemProperty 'HKCU:\Control Panel\Mouse'- What is
MouseSensitivity? ________________ (10 is the default) - What are
MouseSpeed,MouseThreshold1andMouseThreshold2? ________________
4C. Other saved settings in the same style.
Get-ItemProperty 'HKCU:\Control Panel\International' | Select-Object sShortDate, sDecimal, sList, LocaleName
Get-ChildItem Env:TEMP- What is your short-date pattern (
sShortDate)? ________________ - Compare it with what Region (
intl.cpl) shows under "Short date". Do they match? ________________
Part 5: Trace One Setting End to End (Mouse Speed)
This is the chain from Section 3, done for real. You only change the pointer speed by one notch and put it back.
-
Write down your value from step 8 (for example 10).
-
In PowerShell, read it once more:
(Get-ItemProperty 'HKCU:\Control Panel\Mouse').MouseSensitivity -
Open
main.cpl, go to Pointer Options, and move the speed slider one notch to the right. Click Apply. -
Read the registry value again with the same PowerShell command.
-
What was the value before? ________________ After? ________________
-
Did the pointer feel faster straight away, without restarting? ________________
Now undo it. Move the slider back one notch, click Apply, read the value once more and check that it matches your first number. Click OK.
Optional (free Sysinternals tool from Microsoft): Process Monitor. You can see the write happen. This is optional.
-
Download Process Monitor only from Microsoft's official Sysinternals site. Run it (it needs administrator permission to capture).
-
Press
Ctrl + Eto pause capturing, thenCtrl + Xto clear the list. -
Set a filter (
Ctrl + L): Path containsControl Panel\Mouse, then add Operation isRegSetValue. -
Press
Ctrl + Eto start capturing, then click Apply in the Mouse window. -
Look for a
RegSetValueline forMouseSensitivity. Note the Process Name column. -
Press
Ctrl + Eto stop. Then restore your speed as above. -
Which process wrote the value? ________________ (It may be
explorer.exe,rundll32.exeorcontrol.exe, depending on how the window was opened.)
What Should Happen
- Part 1 shows a list of
.cplfiles inSystem32. - Part 2 shows that applets can be opened by file name, by
rundll32or by canonical name, and that some now redirect to Settings. - Part 4 shows a list of GUID keys (modern applets) and saved values under
HKCU\Control Panel. - Part 5 shows
MouseSensitivitychanging right when you click Apply, then returning when you undo.
Interpretation Guide
| What you see | What it means |
|---|---|
| A window that looks old (Windows 7 style) | A classic .cpl applet, still alive for backward compatibility |
| The Settings app opens instead of the classic window | That applet was redirected to the newer Settings app |
desk.cpl exists but opens Settings or little else | The old Display applet is a legacy stub; Display moved to Settings |
MouseSensitivity is 10 | The default pointer speed (the middle of 1 to 20) |
| Value changes the moment you click Apply | The applet called the API, which wrote the registry at once |
The writing process is explorer.exe or rundll32.exe | The applet code ran inside that host (Section 2.2) |
Get-ChildItem Env:TEMP shows a path under your user folder | A user environment variable was set when you signed in |
Follow-Up Questions
- Why can the same applet be started in three different ways (file name,
rundll32, canonical name) and still show the same window? - Which registry hive (
HKCUorHKLM) held the mouse setting, and what does that tell you about who the setting belongs to? - In Part 2, which of your applets were redirected to Settings? What does this say about the future of the Control Panel?
- Why did the pointer change speed at once, even though the value is stored in the registry for next time?
- Name three facts from this lab that you could not have learned just from using the Control Panel's menus.