用好Regsvr32 解决系统疑难杂症

初识Regsvr32

  想必Regsvr32大家一定都不陌生吧,在一些电脑教程或电脑杂志上总能看到它的身影,可如此一个高出镜率的 “小明星”在我们很多人的眼里却显得十分的神秘,原来一般的文章都很少对它进行介绍,最多只是了了几句介绍一下如何用它解决常见问题,好多朋友可能都已经在一些文章的指导下使用过好多次Regsvr32了,但对它的“身世”却依然不了解,今天笔者就借这篇文章打消大家脑海里的疑团,带大家一起去认识一下这个Regsvr32。

  Regsvr32的背景与功能

  Regsvr32是一个Windows系统的内嵌程序,不仅存在于Windows 2000 / XP下,币材茉赪indows 98中找到它的身影。它的主要功能就是注册或卸载动态链接库文件(DLL)和嵌入式控件(OCX),您可别小看了它呀,有了它,很多软件或操作系统的难题就都可以迎刃而解了。

  基础篇  

  刚才咱们说到了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命令格式   

  说完了上面这些,想必好多朋友都听得有点懵了,别急,知道了上面这┲叮旅嬖勖窃傺癛egsvr32命令就容易多了。

  大家知道,凡是命令肯定都有一个格式,Regsvr32也不例外。我们以Windows XP为例,在“开始”菜单→“运行”栏中执行“CMD”命令,打开命令提示行窗口,输入Regsvr32命令后回车,就会看到Regsvr32的命令格式“Regsvr32 [ /u ][ /s ][ /n ][ /i [ :cmdline ] ] dll文件名”,

  由上可知,Regsvr32命令一共有四个参数,分别是:

  /s:注册或卸载成功后不显示操作成功的提示框

  /u:卸载已安装的控件或DLL文件

  /n:不调用DLLRegisterServer,要注意这个参数应与/i一同使用

  /i:调用DLLInstall,并给其传递一个可选的[ cmdline ];当使用/u时用来卸载DLL

  命令的讲解往往都枯燥难懂,下面咱们就借助一个实例来进一步了解Regsvr32的命令格式。比如我们想注册一个保存在C:\Folder目录中的shmedia.dll动态链接库文件,那么执行的命令就应该是“Regsvr32 c:\folder\shmedia.dll”,而如果注册过后打算卸载时就更简单了,执行命令“Regsvr32 /u c:\folder\shmedia.dll”就行了。如图2所示就是正常完成任务的提示窗口

  常见错误提示

  使用Regsvr32命令久后,大家也许会经常看到各种各样的错误提示,这里笔者就找了一些比较有代表性的错误,帮大家来分析分析。

  错误一:未指定DLL文件的具体路径

  这种错误比较常见,一般出现在注册非系统DLL文件时,原因就是Regsvr32程序在默认路径找不到指定的DLL文件,无法正常完成注册。解决的办法也很简单,只要在命令中指定好DLL文件的具体存储路径就行了,比如“Regsvr32 c:\folder\abc.dll”就是一个正常的命令。

  错误二:要注册的文件类型错误

  这种错误比较少,但容易在新手上出现,原因就是用户欲注册的文件根本就不是一个正常的DLL文件或OCX文件,Regsvr32根本无法完成注册。解决的方法就是指定一个正常的DLL文件或OCX文件就行了。比如原命令为“Regsvr32 c:\abc\abc.txt”,而正确的命令就应该是“Regsvr32 c:\abc\abc.dll”(当然,也得保证这个abc.dll文件已存在并完全正确)

  错误三:键入的命令中未写明DLL文件名

  这种错误和上例一样也是主要出现在新手上,它的原因就是根本没有指定DLL文件名,这样Regsvr32自然也就无法得知要对什么进行操作了,所以才会弹出这个提示来。解决的办法就是指定要操作的DLL文件或OCX文件即可。

  常见错误提示

  使用Regsvr32命令久后,大家也许会经常看到各种各样的错误提示,这里笔者就找了一些比较有代表性的错误,帮大家来分析分析。

  错误一:未指定DLL文件的具体路径

  这种错误比较常见,一般出现在注册非系统DLL文件时,原因就是Regsvr32程序在默认路径找不到指定的DLL文件,无法正常完成注册。解决的办法也很简单,只要在命令中指定好DLL文件的具体存储路径就行了,比如“Regsvr32 c:\folder\abc.dll”就是一个正常的命令。

  错误二:要注册的文件类型错误

  这种错误比较少,但容易在新手上出现,原因就是用户欲注册的文件根本就不是一个正常的DLL文件或OCX文件,Regsvr32根本无法完成注册。解决的方法就是指定一个正常的DLL文件或OCX文件就行了。比如原命令为“Regsvr32 c:\abc\abc.txt”,而正确的命令就应该是“Regsvr32 c:\abc\abc.dll”(当然,也得保证这个abc.dll文件已存在并完全正确)

  错误三:键入的命令中未写明DLL文件名

  这种错误和上例一样也是主要出现在新手上,它的原因就是根本没有指定DLL文件名,这样Regsvr32自然也就无法得知要对什么进行操作了,所以才会弹出这个提示来。解决的办法就是指定要操作的DLL文件或OCX文件即可。

(0)

相关推荐

  • 用好Regsvr32 解决系统疑难杂症

    初识Regsvr32 想必Regsvr32大家一定都不陌生吧,在一些电脑教程或电脑杂志上总能看到它的身影,可如此一个高出镜率的 "小明星"在我们很多人的眼里却显得十分的神秘,原来一般的文章都很少对它进行介绍,最多只是了了几句介绍一下如何用它解决常见问题,好多朋友可能都已经在一些文章的指导下使用过好多次Regsvr32了,但对它的"身世"却依然不了解,今天笔者就借这篇文章打消大家脑海里的疑团,带大家一起去认识一下这个Regsvr32. Regsvr32的背景与功能 R

  • .NET 解决TabControl 页里面多余边距问题经验分享

    以下是解决方法: 1.直接新建一个类,继承TabControl,然后 override DisplayRectangle 方法: 复制代码 代码如下: /// <summary> /// 解决系统TabControl多余边距问题 /// </summary> public class FullTabControl : TabControl { public override Rectangle DisplayRectangle { get { Rectangle rect = ba

  • 系统隐形杀手——阻塞与等待(SQL)

    前言 应用系统承载着大量的业务,随之而来的是复杂的业务逻辑,在数据库上的表现就是有着大量的不同种类的SQL语句. SQL语句执行的快慢又与阻塞等待有着密不可分的原因. 系统慢可能有很多种原因,硬件资源不足,语句不优化,结构设计不合理,缺少必要的运维方式.所有的这些问题都可以在阻塞与等待中看出端倪,发现并解决问题. 今天这篇我们主要讲述怎么样发现并解决系统的阻塞和等待. 场景描述 您的系统是否有这样的问题? 系统运行缓慢,很多功能需要几十秒才能呈现结果,用户体验极差,领导们不断施压,作为系统的负责

  • 清除系统默认共享方法揭秘

    自从Windows 2000操作系统开始,微软就添加了一个新的网络功能,叫做Windows默认共享.有朋友会问了,为什么叫"默认共享"呢?原来,这些文件夹与我们自己手工建立的共享文件夹之间有着一个本质的区别,在它们的共享名称最后都会有一个"$"符号,作用就是能够在网上邻居中隐藏自己.这样,除非我们预先知道这些默认共享的共享名,否则,按照常规方法是根本无法直接进入到这些文件夹的.起初这项功能主要是微软为了方便系统管理员的日常工作而设计的,并且在默认情况下它们就是开启的

  • [注册表]解系统托盘区的任务栏空间

    在Windows XP中的自动隐藏不活动的图标,可以解决系统托盘区占用过多的任务栏空间.可时间长了,右击任务栏空白处选择"属性",在 "任务栏"选项中点击"自定义"按钮,会在"过去的项目"栏里看到很多历史记录,删除这些项目的方法是:打开注册表,找到"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\TrayNotify"

  • 优化系统,不能矫枉过正-上

    网络带宽和应用软件越来越多,计算机硬件速度也越来越快,但是为什么我们的电脑在使用一段时间就或多或少的出现速度缓慢,反应拖沓的现象呢?因为操作系统需要优化了,确实通过优化了的操作系统在速度和运行稳定性方面和没优化前有很大区别,但是做为用户的我们是否考虑过优化所采取的措施是否正确,是否会带来安全或应用隐患呢?笔者根据多年的工作经验对优化系统要注意的问题做一个总结,希望对IT168的读者能够起到很大的帮助.毕竟优化系统不能太盲目,我们也要遵循一个度,对系统的优化决不能矫枉过正,否则会收到适得其反的效果

  • 解决Mybatis-plus和pagehelper依赖冲突的方法示例

    简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 Mybati-plus本身自带分页功能,但是我个人一直是使用pagehelper进行分页,所以在pom中添加了pagehelper依赖,但是运行项目后发现jar包冲突,面对冲突我们应该怎么解决它呢,看完如下内容便可轻松解决 先看依赖 <!-- mbatis-plus --> &

  • 赶走讨厌的Windows自带“流氓文件夹”

    相信现在绝大多数朋友的电脑上安装的都是Windows XP操作系统吧,新系统有新系统的好处,但也有一些烦人的地方,比如每次重装完系统以后,大家是不是总能在那个著名的"我的文档"中找到一大堆碍眼的文件夹呢?如图1所示就是最常见的几个文件夹.而且这些文件夹都有一个特点,那就是每次删掉后不出几天又会自己回来了,成为了一群挥之即来,轰之不走的不速之客,联想到前段日子,媒体上大肆宣扬的"流氓软件",笔者就自顾自地给这群文件夹起了一个形象而又特别的名字,叫做"流氓文件

  • 电脑使用小技巧集合

    自己在使用电脑中发现的一些技巧,方法发上来共享,让新手少走弯路,高手共勉 1.   任务栏里的显示桌面丢失了怎么办? 简单的方法:: 记事本新建输入: [Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop 保存为 显示桌面.scf 拖到快速启动 2.   系统自带的缩略图查看功能失效,只能显示图标,怎么办? 运行如下命令: 2000系统下: regsvr32 x:winnt\system\thumbvw

  • 217个电脑知识和实用问题解决集锦

    有问题先看这里--217个电脑知识和实用问题解决集锦 有问题先看这里--217个电脑知识和实用问题解决集锦 楼主语: 本人老命不要了,豁出去花了二天的时间发布这个最适合新人学习查阅和解决一些实际问题的第一手资料!力图打造本坛第一强帖,也希望能给新人以最全面和最好的帮助! 目录:(1#)代表第一层楼,以下类推 2000XP双系统启动问题 (2#) ADSL拨号中出现的错误代码(3#) at命令的用法(4#) AWARD BIOS设置详解 (上)(5#) AWARD BIOS设置详解( 下)(6#)

随机推荐