- ·上一篇文章:中关村黑导购对菜鸟的4次毒手
- ·下一篇文章:想和哪个帅哥聊就和哪个聊
深入编程:控制面板知多少?
我主要分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、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;"/>

