admin管理员组

文章数量:1516870

Windows 控制面板编程

说明:本文章为本人在做项目时查阅相关文章而写成,如有不当之处,请指出。

mail:

关键字:

控制面板,控制面板应用程序,

一、 什么是控制面板

打开 Windows 的控制面板会看到类似的图像

图一

双击其中的一个图标,会显示对话框,让用户来完成相应的软硬件设置工作。这就是我们看到的控制面板。那么如何开发控制面板程序呢?带着疑问在 MSDN google 里搜索关键字“ Control Panel ”,就会找到相关的技术文章。这是我工作的方法:借鉴已有的资源。但实际情况是那样吗?我们可以跟着 MSDN 的讲述来一步一步深入下去。

经过挖掘,发现并不是 exe 文件( Windows Vista 下支持 exe 的控制面板应用程序,并且微软建议做成 exe 文件),而是有着 cpl 后缀名的文件,在 windows >system32 下可以找到这样的文件。如果借助工具, Dependency Walker for Win32 (x86) dumpbin 等就可以看到该文件导出了一些函数。

图二

多观察几个这样的文件,发现导出的函数虽有差异,但其中都有 CPLApplet 函数被导出。这些特征与 DLL 的特征吻合。去 MSDN 上查阅 CPLApplet 函数的说明证明我们的猜测是正确的。可以说控制面板应该程序就是以 CPL 为后缀名并且一定要导出 CPLApplet 函数的 dll 文件。

对于具体的描述可以参考:

二、 明确几个概念

l 控制面板管理程序: 用于管理控制面板的程序,在桌面 windows 版本是 CONTROL.EXE ,在 windows CE 版本是 CTLPNL.EXE ,它们负责管理控制面板里的控制面板条目。简单的说,我们打开控制面板时,这些管理程序就在运行了。只不过我们看到的是挂上了 Shell 外观而已( 注:这是我的猜测,还没有找到依据 )。

l 控制面板条目( Control Panel Item ): 在控制面板里看到的每个图标所对应的就是一个控制面板条目。

l 控制面板应用程序( Control Panel Application ): 就是最终看到的 CPL 文件,一个控制面板应用程序可以实现几个控制面板条目。

三、 控制面板应用程序的编写

编写控制面板应用程序,就是编写 dll 文件,在该文件中实现控制所需要的功能。这就涉及到一个不得不说的函数,没有它就无法完成控制面板程序的实现。该函数为 CPLApplet

本文标签: 控制面板系统应用程序