Windows 控制面板编程
说明:本文章为本人在做项目时查阅相关文章而写成,如有不当之处,请指出。
mail: tomcui60000520@163.com
关键字:
控制面板,控制面板应用程序,
一、 什么是控制面板
打开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文件。
对于具体的描述可以参考:
http://msdn2.microsoft.com/en-us/library/bb776838(VS.85).aspx
二、 明确几个概念
l 控制面板管理程序:用于管理控制面板的程序,在桌面windows版本是CONTROL.EXE,在windows CE版本是CTLPNL.EXE,它们负责管理控制面板里的控制面板条目。简单的说,我们打开控制面板时,这些管理程序就在运行了。只不过我们看到的是挂上了Shell外观而已(注:这是我的猜测,还没有找到依据)。
l 控制面板条目(Control Panel Item):在控制面板里看到的每个图标所对应的就是一个控制面板条目。
l 控制面板应用程序(Control Panel Application):就是最终看到的CPL文件,一个控制面板应用程序可以实现几个控制面板条目。
三、