当前位置:有风信息港IT学院编程技术.net → 深入编程:控制面板知多少?

深入编程:控制面板知多少?

减小字体 增大字体 作者:有风IT学院  来源:有风信息港  发布时间:2008-1-13 8:20:56
  我主要分3个部分来阐述:(由于文章大小的限制,我决定将其分成两章来介绍)    

  1、控制面板是什么,它在哪里?    

  2、CPL文件的真实身份    

  3、VCL如何提供对“控制面板”的支持

  控制面板是什么,它在哪里?   

  控制面板是什么,它在哪儿? 以前,我也很困惑,只是偶尔从一些关于“Windows系统管理”的书籍朦胧地听到关于“控制面板”的描述:“控制面板的每一项一般都会对应一个.CPL文件,这些文件存于系统目录下,你可以指定控制面板中要显示的项目,也可以隐藏等等”关于如何实现,可能还会教给你一些通过修改注册表来达到目的,是的,这可以达到目的,但我想这只是从一个管理者地角度来看待这个问题的,如果从程序员的角度又如何的,他们的描述能解决你的问题吗?你如何利用程序来达到控制你”控制面板”的目的,你想知道吗,请听下文分解.    

  CPL文件的真实身份    

  上面提到了以“.CPL”扩展名结尾文件”,既然又与控制面板有关,哪我就来分析一下CPL文件到底是什么吧,随便找一些CPL文件,如:main.cpl,access.cpl等,我用Dumpbin测试结果如下:   

   C:\WINDOWS\system32>dumpbin main.cpl    

   Microsoft (R) COFF Binary File Dumper Version 6.00.8168    

   Copyright (C) Microsoft Corp 1992-1998. All rights reserved.    

   Dump of file main.cpl    

   File Type: DLL(由DLL可以知道它是一个DLL文件)    

   C:\WINDOWS\system32>dumpbin /exports appwiz .cpl    

   Microsoft (R) COFF Binary File Dumper Version 6.00.8168    

   Copyright (C) Microsoft Corp 1992-1998. All rights reserved.    

   Dump of file appwiz.cpl    

   File Type: DLL  

   Section contains the following exports for appwiz.dll    

   ordinal hint RVA name    

   1 0 00017926 CPlApplet    

   2 1 00017F05 ConfigStartMenu 

   ......    

   C:\WINDOWS\system32>dumpbin /exports access.cpl    

   Microsoft (R) COFF Binary File Dumper Version 6.00.8168    

   Copyright (C) Microsoft Corp 1992-1998. All rights reserved.    

   Dump of file access.cpl

  File Type: DLL    

   Section contains the following exports for Access.dll    

   ordinal hint RVA name    

   1 0 00004B41 CPlApplet  

   2 1 00004B33 DebugMain    

   3 2 00004B30 DllRegisterServer    

   3 3 00004A27 DllUnregisterServer

   从上面的测试结果你看到了什么,我认为至少有两点:    

   1、 CPL文件就是一个DLL文件    

   2、 CPL文件都导出了一个CPLApplet函数    

  
javascript:window.open(this.src);" style="cursor: pointer;"/>

[1] [2] [3] [4] [5] [6]  下一页