65.9K
CodeProject 正在变化。 阅读更多。
Home

只需 2 次单击即可访问控制面板应用程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.85/5 (18投票s)

2009年2月4日

CPOL

8分钟阅读

viewsIcon

97227

解决频繁鼠标点击问题

更新版本

ControlPanelApps现在已添加Windows XP控制面板小程序。我正在寻找一些XP用户来试用,并告诉我任何错误、不兼容性以及无法启动的小程序。我没有XP机器,所以我需要一些帮助。你可以在这里下载。注意:这仅适用于32位Vista和XP用户。如果你只想要Vista应用程序,请在这里下载。C#用户可以在这里获取。CHM文件在这里。C#版本是使用SharpDevelop 3.1转换的。

引言

在创建了Vista_Command_Utilities可以在这里看到)并收到热烈反响后,我决定创建一个完整的应用程序,只需点击两下即可访问每个控制面板项目。这个应用程序具有更好的界面,外观也更好。我还将最常用的项目归类,以便更轻松地访问。程序本身太大,无法上传到The Code Project(9.23 MB)。如果您想查看和使用它,请点击Vista_XP_ControlPanelApps.zip。我目前正在添加Windows 7控制面板小程序。

这段小插曲来自一篇关于控制面板项目的MSDN文章。注意:(并非所有控制面板项目都可在所有版本的Windows Vista和XP上使用。某些控制面板项目可能仅在检测到适当硬件时才会出现)。此外,这适用于Vista 32位用户和XP用户。我不确定Vista 64位命令及其参数。

在上面的图片中,左侧的列表框中选择了控制面板收藏夹。右侧的组框显示了该类别中最常用的项目。将鼠标悬停在带图片的项上,您将在文本框中看到该项及其用于访问该特定项的命令。点击带图片的项,它将显示该项。只需两次点击。

cpa2.gif

Using the Code

使用的代码是WinExec函数,该函数位于kernel32.dll库中。我不确定这是否是正确的方法,但它似乎有效。我还使用了进程控制来访问某些命令,因为WinExec函数不接受“/s”参数。因此,进程控制是正确的方法。以下是我刚刚描述的两种样式的代码:

Private Sub PictureBox31_Click(ByVal sender As System.Object,_ 
ByVal e As System.EventArgs) Handles PictureBox31.Click 
'Windows Defender 
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 
'Computer Management 
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

以下是显示接下来5个类别的图片列表:

cpa3.gif

cpa4.gif

cpa5.gif

cpa6.gif

cpa7.gif

项目1-6的所有命令基本相同。项目7是“CP完整列表”。选择它会显示上面的最后一张图片。组合框中是控制面板项目的完整列表。用于此的命令是WinExec函数和控制面板项目的规范名称。下面是MSDN中关于规范名称的摘要。

Windows Vista 规范名称

在 Windows Vista 中,从命令行启动控制面板项目的首选方法是使用控制面板项目的规范名称。规范名称是控制面板项目在注册表中声明的非本地化字符串。使用规范名称的价值在于它抽象了控制面板项目的模块名称。一个项目可以在*.dll中实现,然后作为*.exe重新实现或更改其模块名称。只要规范名称保持不变,任何使用该规范名称打开它的程序都不需要更新以适应这些更改。按照惯例,规范名称是"CorporationName.ControlPanelItemName"

以下示例展示了应用程序如何使用WinExec启动控制面板项目 Windows Update。

WinExec("%systemroot%\system32\control.exe /name Microsoft.WindowsUpdate", SW_NORMAL);

要使用其规范名称启动控制面板项目,请使用:“%systemroot%\system32\control.exe /name canonicalName”。要打开项目中的特定子页面,或使用附加参数打开它,请使用:“%systemroot%\system32\control.exe /name canonicalName /page pageName”。

应用程序还可以实现IOpenControlPanel接口,通过IOpenControlPanel::Open方法启动控制面板项目,包括打开特定子页面的功能。以下规范名称为 Windows Vista 上的控制面板项目定义。这些规范名称不会因语言不同而改变。即使系统语言不是英语,它们也始终是英语。

  • 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 控制面板规范名称

以下规范名称为 Windows 7 中的控制面板项目定义。除非另有说明,所有名称在 Windows Vista 上也有效。并非所有控制面板项目都可在所有版本的 Microsoft Windows 上使用,有些控制面板项目可能仅在检测到适当硬件时才显示。这些规范名称不会因语言不同而改变。即使系统语言不是英语,它们也始终是英语。

控制面板项目、规范名称、GUID

  • 操作中心, Microsoft.ActionCenter (Windows 7), {BB64F8A7-BEE7-4E1A-AB8D-7D8273F7FDB6}
  • 管理工具, Microsoft.AdministrativeTools, {D20EA4E1-3957-11d2-A40B-0C5020524153}
  • 自动播放, Microsoft.AutoPlay, {9C60DE1E-E5FC-40f4-A487-460851A8D915}
  • 备份和还原, Microsoft.BackupAndRestore (Windows 7), {B98A2BEA-7D42-4558-8BD1-832F41BAC6FD}
  • 生物识别设备, Microsoft.BiometricDevices (Windows 7), {0142e4d0-fb7a-11dc-ba4a-000ffe7ab428}
  • BitLocker 驱动器加密, Microsoft.BitLockerDriveEncryption, {D9EF8727-CAC2-4e60-809E-86F80A666C91}
  • 颜色管理, Microsoft.ColorManagement, {B2C761C6-29BC-4f19-9251-E6195265BAF1}
  • 凭据管理器, Microsoft.CredentialManager (Windows 7), {1206F5F1-0569-412C-8FEC-3204630DFB70}
  • 日期和时间, Microsoft.DateAndTime, {E2E7934B-DCE5-43C4-9576-7FE4F75E7480}
  • 默认位置, Microsoft.DefaultLocation (Windows 7), {00C6D95F-329C-409a-81D7-C46C66EA7F33}
  • 默认程序, Microsoft.DefaultPrograms, {17cd9488-1228-4b2f-88ce-4298e93e0966}
  • 桌面小工具, Microsoft.DesktopGadgets (Windows 7), {37efd44d-ef8d-41b1-940d-96973a50e9e0}
  • 设备管理器, Microsoft.DeviceManager, {74246bfc-4c96-11d0-abef-0020af6b0b7a}
  • 设备和打印机, Microsoft.DevicesAndPrinters (Windows 7), {A8A91A66-3A7D-4424-8D24-04E180695C7A}
  • 显示, Microsoft.Display (Windows 7), {C555438B-3C23-4769-A71F-B6D3D9B6053A}
  • 轻松访问中心, Microsoft.EaseOfAccessCenter, {D555645E-D4F8-4c29-A827-D93C859C4F2A}
  • 文件夹选项, Microsoft.FolderOptions, {6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}
  • 字体, Microsoft.Fonts, {93412589-74D4-4E4E-AD0E-E0CB621440FD}
  • 游戏控制器, Microsoft.GameControllers, {259EF4B1-E6C9-4176-B574-481532C9BCE8}
  • 获取程序, Microsoft.GetPrograms, {15eae92e-f17a-4431-9f28-805e482dafd4}
  • 入门, Microsoft.GettingStarted (Windows 7), {CB1B7F8C-C50A-4176-B604-9E24DEE8D4D1}
  • 家庭组, Microsoft.HomeGroup (Windows 7), {67CA7650-96E6-4FDD-BB43-A8E774F73A57}
  • 索引选项, Microsoft.IndexingOptions, {87D66A43-7B11-4A28-9811-C86EE395ACF7}
  • 红外, Microsoft.Infrared (Windows 7), {A0275511-0E86-4ECA-97C2-ECD8F1221D08}
  • Internet 选项, Microsoft.InternetOptions, {A3DD4F92-658A-410F-84FD-6FBBBEF2FFFE}
  • iSCSI 发起程序, Microsoft.iSCSIInitiator, {A304259D-52B8-4526-8B1A-A1D6CECC8243}
  • 键盘, Microsoft.Keyboard, {725BE8F7-668E-4C7B-8F90-46BDB0936430}
  • 位置及其他传感器, Microsoft.LocationAndOtherSensors (Windows 7), {E9950154-C418-419e-A90A-20C5287AE24B}
  • 鼠标, Microsoft.Mouse, {6C8EEC18-8D75-41B2-A177-8831D59D2D50}
  • 网络和共享中心, Microsoft.NetworkAndSharingCenter, {8E908FC9-BECC-40f6-915B-F4CA0E70D03D}
  • 通知区域图标, Microsoft.NotificationAreaIcons (Windows 7), {05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}
  • 脱机文件, Microsoft.OfflineFiles, {D24F75AA-4F2B-4D07-A3C4-469B3D9030C4}
  • 家长控制, Microsoft.ParentalControls, {96AE8D84-A250-4520-95A5-A47A7E3C548B}
  • 笔和触控, Microsoft.PenAndTouch (Windows 7), {F82DF8F7-8B9F-442E-A48C-818EA735FF9B}
  • 附近的人, Microsoft.PeopleNearMe, {5224F545-A443-4859-BA23-7B5A95BDC8EF}
  • 性能信息, Microsoft.PerformanceInformationAndTools, {78F3955E-3B90-4184-BD14-5397C15F1EFC}
  • 个性化, Microsoft.Personalization, {ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}
  • 电话和调制解调器, Microsoft.PhoneAndModem (Windows 7), {40419485-C444-4567-851A-2DD7BFA1684D}
  • 电源选项, Microsoft.PowerOptions, {025A5937-A6BE-4686-A844-36FE4BEC8B6D}
  • 程序和功能, Microsoft.ProgramsAndFeatures, {7b81be6a-ce2b-4676-a29e-eb907a5126c5}
  • 恢复, Microsoft.Recovery (Windows 7), {9FE63AFD-59CF-4419-9775-ABCC3849F861}
  • 区域和语言, Microsoft.RegionAndLanguage (Windows 7), {62D8ED13-C9D0-4CE8-A914-47DD628FB1B0}
  • RemoteApp, Microsoft.RemoteAppAndDesktopConnections (Windows 7), {241D7C96-F8BF-4F85-B01F-E2B043341A4B}
  • 扫描仪和照相机, Microsoft.ScannersAndCameras, {00f2886f-cd64-4fc9-8ec5-30ef6cdbe8c3}
  • 声音, Microsoft.Sound (Windows 7), {F2DDFC82-8F12-4CDD-B7DC-D4FE1425AA4D}
  • 语音识别, Microsoft.SpeechRecognition (Windows 7), {58E3C745-D971-4081-9034-86E34B30836A}
  • 同步中心, Microsoft.SyncCenter, {9C73F5E5-7AE7-4E32-A8E8-8D23B85255BF}
  • 系统, Microsoft.System, {BB06C0E4-D293-4f75-8A90-CB05B6477EEE}
  • Tablet PC 设置, Microsoft.TabletPCSettings, {80F3F1D5-FECA-45F3-BC32-752C152E456E}
  • 任务栏和“开始”菜单, Microsoft.TaskbarAndStartMenu, {0DF44EAA-FF21-4412-828E-260A8728E7F1}
  • 文本到语音, Microsoft.TextToSpeech, {D17D1D6D-CC3F-4815-8FE3-607E7D5D10B3}
  • 疑难解答, Microsoft.Troubleshooting (Windows 7), {C58C4893-3BE0-4B45-ABB5-A63E4B8C8651}
  • 用户帐户, 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 防火墙, Microsoft.WindowsFirewall, {4026492F-2F69-46B8-B9BF-5654FC07E423}
  • Windows 移动中心, 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}

Windows 7 中的某些规范名称与 Vista 中的不同,有些已被删除。{例如:Windows 7 中的Microsoft.RegionAndLanguage与 Vista 中的Microsoft.RegionalAndLanguageOptions不同}。已删除的一个是{Windows Marketplace Microsoft.GetProgramsOnline}。Vista 中不同的那些已被映射到 Windows 7 中的对应项。不过,您的体验可能会有所不同。

XP 和 VISTA RUNDLL32.exe 命令

您可以使用的命令超过200个。我将只显示其中几个。其余的将包含在 zip 文件中的文本文件中。

  • 辅助功能设置:显示
    • 打开辅助功能控制面板小程序到“显示”选项卡
    • RUNDLL32.EXE shell32.dll,Control_RunDLL access.cpl,,3
  • 辅助功能设置:常规
    • 打开辅助功能控制面板小程序到“常规”选项卡
    • RUNDLL32.EXE shell32.dll,Control_RunDLL access.cpl,,5
  • 辅助功能设置:键盘
    • 打开辅助功能控制面板小程序到“键盘”选项卡
    • RUNDLL32.EXE shell32.dll,Control_RunDLL access.cpl,,1
  • 辅助功能设置:鼠标
    • 打开辅助功能控制面板小程序到“鼠标”选项卡
    • RUNDLL32.EXE shell32.dll,Control_RunDLL access.cpl,,4
  • 辅助功能设置:声音
    • 打开辅助功能控制面板小程序到“声音”选项卡
    • RUNDLL32.EXE shell32.dll,Control_RunDLL access.cpl,,2

在 Windows XP 中,没有规范名称。我为所有 XP 控制面板项目使用了WinExec命令。该命令看起来像这样...

WinExec("RUNDLL32.EXE shell32.dll,Control_RunDLL access.cpl,,4", SW_NORMAL)

正如您在程序中将看到的,此命令有多种不同的变体。

关于/帮助

cpa8.gif

点击“关于/帮助”按钮会弹出上面显示的 CHM 程序。它详细描述了本文中的内容以及更多信息。

历史

  • 版本 1.0.0.0

2009年10月10日更新

  • 在启动时添加了操作系统检测功能
  • 添加了 Windows XP 控制面板小程序和frmXP
  • 添加了frmWin7,正在进行中
© . All rights reserved.