Updated Version
ControlPanelApps
now has WindowsXP Control Panel Applets added. I am looking for some XP users to try this out and let me know of any errors, incompatibilities, and applets that won't start. I do not have an XP machine so I need some help. You can download it here. NOTE: This is for 32 bit Vista and XP users ONLY. If you just want the Vista application, download it here. C# users can get it here. The CHM file is here. The C-Sharp version was converted with SharpDevelop 3.1.
Introduction
After creating Vista_Command_Utilities
, which can be seen here, and the great response I received, I decided to create a full application that accessed the control panel with as little as 2 clicks per control panel item. This one has a better Interface and looks a lot better. I also put the most commonly used items in categories which will be easier to get at. The program itself is too big to upload to The Code Project (9.23 MB in size). If you would like to see and use it, click Vista_XP_ControlPanelApps.zip. I am currently adding Windows 7 Control Panel Applets.
This little insert is from an MSDN article on the control panel items. NOTE: (Not all Control Panel items are available on all varieties of Windows Vista and XP. Some Control Panel items may appear only when appropriate hardware is detected). Also this is for Vista 32bit users and XP users. I am not sure about the Vista 64bit commands and their arguments.
In the picture above, on the left, the control panel favorites is selected in the list box. On the right, a group box displays the most commonly used items for this category. By moving your mouse over a pictured item, you will get the item and the command used to access that particular item displayed in the text boxes. By clicking on a pictured item, it displays that item. Just two clicks.
Using the Code
The code that was used is the WinExec
function which is found in the kernel32.dll library. I am not sure if this is the correct way of going about this, but, it seems to work. I also used the Process control to access some of the commands because the WinExec
function would not take the ‘/s’ argument. Therefore, the Process control was the way to go. Here is the code for the two styles that I just described:
Private Sub PictureBox31_Click(ByVal sender As System.Object,_
ByVal e As System.EventArgs) Handles PictureBox31.Click
WinExec(strSysPath&"\control.exe /name _ Microsoft.WindowsDefender", SW_NORMAL)
End Sub
Private Sub PictureBox31_MouseEnter(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles PictureBox31.MouseEnter
txtWindows.Text = strSysPath & "\control.exe /name _ Microsoft.WindowsDefender"
txtInfo5.Text = "Windows Defender."
End Sub
Private Sub PictureBox31_MouseLeave(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles PictureBox31.MouseLeave
txtWindows.Text = ""
txtInfo5.Text = ""
End Sub
Private Sub PictureBox34_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles PictureBox34.Click
pRun.StartInfo.Arguments = "/s"
pRun.StartInfo.WorkingDirectory = strSysPath
pRun.StartInfo.FileName = "compmgmt.msc"
pRun.Start()
pRun.WaitForExit()
End Sub
Private Sub PictureBox34_MouseEnter(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles PictureBox34.MouseEnter
txtInfo7.Text = "Computer Management"
txtCmdSys.Text = strSysPath & "\compmgmt.msc /s"
End Sub
Private Sub PictureBox34_MouseLeave(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles PictureBox34.MouseLeave
txtInfo7.Text = ""
txtCmdSys.Text = ""
End Sub
Here is a list of pictures that show the next 5 categories:
All the commands are basically the same for items 1 – 6. Item 7 is CP Complete List. Selecting this brings up the last picture above. In the combo box is a complete list of the control panel items. The command used for this was WinExec
function and the canonical names of the control panel items. Below is an insert from MSDN that sums up what canonical names are.
Windows Vista Canonical Names
In Windows Vista, the preferred method of launching a Control Panel item from a command line is to use the Control Panel item's canonical name. A canonical name is a non-localized string
that the Control Panel item declares in the registry. The value of using a canonical name is that it abstracts the module name of the Control Panel item. An item can be implemented in a *.dll and later be reimplemented as a *.exe or change its module name. As long as the canonical name remains the same, any program that opens it by using that canonical name does not need to be updated to account for the changes. By convention, the canonical name is "CorporationName.ControlPanelItemName"
.
The following example shows how an application can start the Control Panel item Windows Update with WinExec
.
WinExec("%systemroot%\system32\control.exe /name Microsoft.WindowsUpdate", SW_NORMAL);
To start a Control Panel item with its canonical name, use: "%systemroot%\system32\control.exe /name canonicalName
". To open a specific sub-page in an item, or to open it with additional parameters, use: "%systemroot%\system32\control.exe /name canonicalName /page pageName
".
An application can also implement the IOpenControlPanel
interface to start Control Panel items, including the ability to open a specific sub-page, through the IOpenControlPanel::Open
method. The following canonical names are defined for Control Panel items on Windows Vista. These canonical names do not change for different languages. They are always in English, even if the system's language is non-English.
Microsoft.AddHardware
Microsoft.AdministrativeTools
Microsoft.AudioDevicesAndSoundThemes
Microsoft.AutoPlay
Microsoft.BackupAndRestoreCenter
Microsoft.BitLockerDriveEncryption
Microsoft.Bluetooth
Microsoft.CardSpace
Microsoft.ColorManagement
Microsoft.DateAndTime
Microsoft.DefaultPrograms
Microsoft.DeviceManager
Microsoft.EaseOfAccessCenter
Microsoft.FolderOptions
Microsoft.Fonts
Microsoft.GameControllers
Microsoft.GetPrograms
Microsoft.GetProgramsOnline
Microsoft.IndexingOptions
Microsoft.Infrared
Microsoft.InternetOptions
Microsoft.iSCSIInitiator
Microsoft.Keyboard
Microsoft.MobilityCenter
Microsoft.Mouse
Microsoft.NetworkAndSharingCenter
Microsoft.OfflineFiles
Microsoft.ParentalControls
Microsoft.PenAndInputDevices
Microsoft.PeopleNearMe
Microsoft.PerformaceInformationAndTools
Microsoft.Personalization
Microsoft.PhoneAndModemOptions
Microsoft.PowerOptions
Microsoft.Printers
Microsoft.ProblemReportsAndSolutions
Microsoft.ProgramsAndFeatures
Microsoft.RegionalAndLanguageOptions
Microsoft.ScannersAndCameras
Microsoft.SecurityCenter
Microsoft.SpeechRecognitionOptions
Microsoft.SyncCenter
Microsoft.System
Microsoft.TabletPCSettings
Microsoft.TaskbarAndStartMenu
Microsoft.TextToSpeech
Microsoft.UserAccounts
Microsoft.WelcomeCenter
Microsoft.WindowsAnytimeUpgrade
Microsoft.WindowsDefender
Microsoft.WindowsFirewall
Microsoft.WindowsSideShow
Microsoft.WindowsSidebarProperties
Microsoft.WindowsUpdate
Windows 7 Control Panel Canonical Names
The following canonical names are defined for Control Panel items in Windows 7. All names are also valid on Windows Vista unless specified otherwise. Not all Control Panel items are available on all varieties of Microsoft Windows and some Control Panel items might appear only when appropriate hardware is detected. These canonical names do not change for different languages. They are always in English, even if the system's language is non-English.
ControlPanelItem, CanonicalName, GUID
- Action Center,
Microsoft.ActionCenter
(Windows 7), {BB64F8A7-BEE7-4E1A-AB8D-7D8273F7FDB6} - Administrative Tools,
Microsoft.AdministrativeTools
, {D20EA4E1-3957-11d2-A40B-0C5020524153} - AutoPlay,
Microsoft.AutoPlay
, {9C60DE1E-E5FC-40f4-A487-460851A8D915} - Backup and Restore,
Microsoft.BackupAndRestore
(Windows 7), {B98A2BEA-7D42-4558-8BD1-832F41BAC6FD} - Biometric Devices,
Microsoft.BiometricDevices
(Windows 7), {0142e4d0-fb7a-11dc-ba4a-000ffe7ab428} - BitLocker Drive Encryption,
Microsoft.BitLockerDriveEncryption
, {D9EF8727-CAC2-4e60-809E-86F80A666C91} - Color Management,
Microsoft.ColorManagement
, {B2C761C6-29BC-4f19-9251-E6195265BAF1} - Credential Manager,
Microsoft.CredentialManager
(Windows 7), {1206F5F1-0569-412C-8FEC-3204630DFB70} - Date and Time,
Microsoft.DateAndTime
, {E2E7934B-DCE5-43C4-9576-7FE4F75E7480} - Default Location,
Microsoft.DefaultLocation
(Windows 7), {00C6D95F-329C-409a-81D7-C46C66EA7F33} - Default Programs,
Microsoft.DefaultPrograms
, {17cd9488-1228-4b2f-88ce-4298e93e0966} - Desktop Gadgets,
Microsoft.DesktopGadgets
(Windows 7), {37efd44d-ef8d-41b1-940d-96973a50e9e0} - Device Manager,
Microsoft.DeviceManager
, {74246bfc-4c96-11d0-abef-0020af6b0b7a} - Devices and Printers,
Microsoft.DevicesAndPrinters
(Windows 7), {A8A91A66-3A7D-4424-8D24-04E180695C7A} - Display,
Microsoft.Display
(Windows 7), {C555438B-3C23-4769-A71F-B6D3D9B6053A} - Ease of Access Center,
Microsoft.EaseOfAccessCenter
, {D555645E-D4F8-4c29-A827-D93C859C4F2A} - Folder Options,
Microsoft.FolderOptions
, {6DFD7C5C-2451-11d3-A299-00C04F8EF6AF} - Fonts,
Microsoft.Fonts
, {93412589-74D4-4E4E-AD0E-E0CB621440FD} - Game Controllers,
Microsoft.GameControllers
, {259EF4B1-E6C9-4176-B574-481532C9BCE8} - Get Programs,
Microsoft.GetPrograms
, {15eae92e-f17a-4431-9f28-805e482dafd4} - Getting Started,
Microsoft.GettingStarted
(Windows 7), {CB1B7F8C-C50A-4176-B604-9E24DEE8D4D1} - HomeGroup,
Microsoft.HomeGroup
(Windows 7), {67CA7650-96E6-4FDD-BB43-A8E774F73A57} - Indexing Options,
Microsoft.IndexingOptions
, {87D66A43-7B11-4A28-9811-C86EE395ACF7} - Infrared,
Microsoft.Infrared
(Windows 7), {A0275511-0E86-4ECA-97C2-ECD8F1221D08} - Internet Options,
Microsoft.InternetOptions
, {A3DD4F92-658A-410F-84FD-6FBBBEF2FFFE} - iSCSI Initiator,
Microsoft.iSCSIInitiator
, {A304259D-52B8-4526-8B1A-A1D6CECC8243} - Keyboard,
Microsoft.Keyboard
, {725BE8F7-668E-4C7B-8F90-46BDB0936430} - Location and Other Sensors,
Microsoft.LocationAndOtherSensors
(Windows 7), {E9950154-C418-419e-A90A-20C5287AE24B} - Mouse,
Microsoft.Mouse
, {6C8EEC18-8D75-41B2-A177-8831D59D2D50} - Network and Sharing Center,
Microsoft.NetworkAndSharingCenter
, {8E908FC9-BECC-40f6-915B-F4CA0E70D03D} - Notification Area Icons,
Microsoft.NotificationAreaIcons
(Windows 7), {05d7b0f4-2121-4eff-bf6b-ed3f69b894d9} - Offline Files,
Microsoft.OfflineFiles
, {D24F75AA-4F2B-4D07-A3C4-469B3D9030C4} - Parental Controls,
Microsoft.ParentalControls
, {96AE8D84-A250-4520-95A5-A47A7E3C548B} - Pen and Touch,
Microsoft.PenAndTouch
(Windows 7), {F82DF8F7-8B9F-442E-A48C-818EA735FF9B} - People Near Me,
Microsoft.PeopleNearMe
, {5224F545-A443-4859-BA23-7B5A95BDC8EF} - Performance Information,
Microsoft.PerformanceInformationAndTools
, {78F3955E-3B90-4184-BD14-5397C15F1EFC} - Personalization,
Microsoft.Personalization
, {ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} - Phone and Modem,
Microsoft.PhoneAndModem
(Windows 7), {40419485-C444-4567-851A-2DD7BFA1684D} - Power Options,
Microsoft.PowerOptions
, {025A5937-A6BE-4686-A844-36FE4BEC8B6D} - Programs and Features,
Microsoft.ProgramsAndFeatures
, {7b81be6a-ce2b-4676-a29e-eb907a5126c5} - Recovery,
Microsoft.Recovery
(Windows 7), {9FE63AFD-59CF-4419-9775-ABCC3849F861} - Region and Language,
Microsoft.RegionAndLanguage
(Windows 7), {62D8ED13-C9D0-4CE8-A914-47DD628FB1B0} - RemoteApp,
Microsoft.RemoteAppAndDesktopConnections
(Windows 7), {241D7C96-F8BF-4F85-B01F-E2B043341A4B} - Scanners and Cameras,
Microsoft.ScannersAndCameras
, {00f2886f-cd64-4fc9-8ec5-30ef6cdbe8c3} - Sound,
Microsoft.Sound
(Windows 7), {F2DDFC82-8F12-4CDD-B7DC-D4FE1425AA4D} - Speech Recognition,
Microsoft.SpeechRecognition
(Windows 7), {58E3C745-D971-4081-9034-86E34B30836A} - Sync Center,
Microsoft.SyncCenter
, {9C73F5E5-7AE7-4E32-A8E8-8D23B85255BF} - System,
Microsoft.System
, {BB06C0E4-D293-4f75-8A90-CB05B6477EEE} - Tablet PC Settings,
Microsoft.TabletPCSettings
, {80F3F1D5-FECA-45F3-BC32-752C152E456E} - Taskbar and Start Menu,
Microsoft.TaskbarAndStartMenu
, {0DF44EAA-FF21-4412-828E-260A8728E7F1} - Text to Speech,
Microsoft.TextToSpeech
, {D17D1D6D-CC3F-4815-8FE3-607E7D5D10B3} - Troubleshooting,
Microsoft.Troubleshooting
(Windows 7), {C58C4893-3BE0-4B45-ABB5-A63E4B8C8651} - User Accounts,
Microsoft.UserAccounts
, {60632754-c523-4b62-b45c-4172da012619} - Windows Anytime Upgrade,
Microsoft.WindowsAnytimeUpgrade
, {BE122A0E-4503-11DA-8BDE-F66BAD1E3F3A} - Windows CardSpace,
Microsoft.CardSpace
, {78CB147A-98EA-4AA6-B0DF-C8681F69341C} - Windows Defender,
Microsoft.WindowsDefender
, {D8559EB9-20C0-410E-BEDA-7ED416AECC2A} - Windows Firewall,
Microsoft.WindowsFirewall
, {4026492F-2F69-46B8-B9BF-5654FC07E423} - Windows Mobility Center,
Microsoft.MobilityCenter
, {5ea4f148-308c-46d7-98a9-49041b1dd468} - Windows SideShow,
Microsoft.WindowsSideShow
, {E95A4861-D57A-4be1-AD0F-35267E261739} - Windows Update,
Microsoft.WindowsUpdate
, {36eef7db-88ad-4e81-ad49-0e313f0c35f8}
Some of the canonical names in Windows 7 differ from those in Vista and some have been removed. {e.g.: Windows 7, Microsoft.RegionAndLanguage
is different from Vista, Microsoft.RegionalAndLanguageOptions
}. One that has been removed is {Windows Marketplace Microsoft.GetProgramsOnline
}. The ones that differ in Vista are mapped to their counterparts in Windows 7. You might have somewhat of a different experience though.
XP and VISTA RUNDLL32.exe Commands
There are over 200 commands that you can use. I will display only a few of them. The rest will be included in a text file that will be included in the zip file.
Accessibility Settings: Display
Accessibility Settings: General
Accessibility Settings: Keyboard
Accessibility Settings: Mouse
Accessibility Settings: Sound
In Windows XP, there are no Canonical Names. I used the WinExec
command for all the XP Control Panel items. The command looks like this...
WinExec("RUNDLL32.EXE shell32.dll,Control_RunDLL access.cpl,,4", SW_NORMAL)
There is a multitude of different variations of this command as you will see through-out the program.
About/Help
Clicking the About/Help button brings up the CHM program pictured above. It describes what is in this article and much more in detail.
History
Updates as of 10/10/09
- Added Operating System detection function at startup
- Added Windows XP Control Panel Applets and
frmXP
- Added
frmWin7
, work in progress