Regsvr32是一个Windows系统的内嵌程序,不仅存在于Windows 2000 / XP下,同时也能在Windows 98中找到它的身影。它的主要功能就是注册或卸载动态链接库文件(DLL)和嵌入式控件(OCX)。
DLL文件:DLL文件全称是Dynamic Link Library,中文名字叫做“动态链接库文件”。在Windows系统中,DLL文件就象EXE文件一样能够完成某项功能,但它却无法像EXE文件那样独立运行,必须由其他程序来调用它,而它对于程序的执行也是非常重要的,大多数的程序或系统组件在执行时,都必须链接到DLL文件才能正常运行。换言之,DLL文件就像是数据库中一个个公用的函数库,每位设计人员都可以在自己的程序中随意调用它们,这样,不仅不用自己再去编写一些基础功能(因为这些功能都已经由DLL文件完成了),而且还可以让程序的体积更加小巧。因此,如果某个DLL文件发生丢失,就有可能造成某个软件或某个系统模块发生故障而无法正常工作。
OCX文件:OCX文件的全称是Object Linking and Embedding (OLE) Control Extension,中文名字叫做“嵌入式对象控件”,它的作用其实和刚才谈到的DLL文件特别相像,其实所谓的OLE我们平时已经非常熟悉了,简单地说就像在Word中可以使用Excel数据,写字板中可以嵌入图片文件等等这些功能。打个比方的话,剪贴板就像是个简单的数据共享,而OLE则是一种“对象共享”。
Regsvr32的功能是注册与卸载DLL文件的,那么现在又有一个问题困扰着我们,既然DLL文件起到的就是公用函数库的作用,为什么我们不能直接在程序里调用,还要进行一次注册呢?其实,这里注册DLL文件的道理就像是我们第一次入学,虽然你坐在教室里,但是如果没有写你的档案,老师是不会认识你的,自然也就不会找到你。同样道理,如果DLL文件没有注册,系统注册表中就没有这个DLL文件的相关信息,虽然它已经存在于我们的硬盘上,但等到调用的时候,系统也就根本找不到这个DLL文件而只能报告没有这个DLL存在了,所以在这个时候就需要我们注册DLL文件了。
Windows系统的DLL因为在安装时已经注册好了,因此不用注册,但是如果因为某种情况系统无法识别这些DLL文件时,还是需要我们手动再注册一遍。
Regsvr32命令格式
Regsvr32 [ /u ][ /s ][ /n ][ /i [ :cmdline ] ] dll文件名
/s:注册或卸载成功后不显示操作成功的提示框
/u:卸载已安装的控件或DLL文件
/n:不调用DLLRegisterServer,要注意这个参数应与/i一同使用
/i:调用DLLInstall,并给其传递一个可选的[ cmdline ];当使用/u时用来卸载DLL
几个实例
实例一:卸载Windows XP自带的ZIP文件夹显示功能
Regsvr32 /u zipfldr.dll
实例二:卸载Windows图片预览功能
Regsvr32 /u shimgvw.dll
实例三:修复损坏的IE浏览器
进入命令提示符窗口,执行命令:Regsvr32 actxprxy.dll,待正常报告窗口弹出后,再次执行命令:regsvr32 shdocvw.dll,再等待正常报告弹出后,继续执行命令:Regsvr32 Oleaut32.dll,等最后这次正常报告弹出后,您就可以重新打开IE试试