简介
regsvr32命令用于注册动态链接库文件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。WinXP及以上系统的regsvr32.exe在windowssystem32文件夹下;2000系统的regsvr32.exe在winntsystem32文件夹下。
regsvr32的用法为: "regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。
基本介绍
regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname 其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。
参数
/u
反注册控件
/s
指定 regsvr32 安静运行,在成功注册/反注册DLL文件的前提下不显示结果提示框。
/n
指定不调用 DllRegisterServer。此选项必须与 /i 共同使用。
/i:cmdline
调用 DllInstall 将它传递到可选的 [cmdline]。在与 /u 共同使用时,它调用 dll 卸载。
dllname
指定要注册的 dll 文件名。
/?
在命令提示符显示帮助。
执行方法
1、可以在“开始”--“运行”,调出运行的对话框,也可以使用Win+R热键,然后直接在输入栏输入即可
2、在开始--运行 输入cmd,调出‘命令提示符’窗口,然后再执行regsvr32命令。
例:
要为“Active Directory Schema”注册 .dll,请在 MS-DOS提示符处键入以下命令:
c:regsvr32 schmmgmt.dll
Regsvr32是系统文件
很多朋友都用过Windows系统下提供的regsvr32.exe这个命令。不要瞧不起这个小命令。有时候它可能帮你解决大问题。
组件注册
注册一个组件使用regsvr32 xxx.dll命令。其中DLL(即xxx.dll)输出四个函数。DllGetClassObject,DllRegisterServer,DllUnregisterServer和DllMain。下面简单介绍这四个函数的用途 DllGetClassObject用于返回classfactory对象指针,classfactory用于创建组件实例,详情参看《COM技术内幕》
DllRegisterServer由词义看出其用于注册组件,在windows的注册表中给某个dll的登记。注意DLL(xxx.dll)内部包含一个或多个组件。regsvr32 -s xxx.dll即regsvr32调用xxx.dll中的此函数完成组件的注册。多说一句,注册是为了能够索引到xxx.dll然后创建组件。
DllUnregisterServer在windows的注册表中取消某个dll的登记
DllMain:c++程序有一个main函数作为程序入口,windows程序使用WinMain作为程序入口,Dll使用的是DllMain作为入口。主要用于获取模块句柄。下面是其实现方式
BOOL APIENTRY DllMain(HINSTANCE hModule,DWORD dwReason, void* lpReserved)
{
if(dwReason==DLL_PROCESS_ATTACH)
{
g_hModule=hModule;
}
}
可以看到,DllMain将模块句柄保存到一个全局g_hModule中,以供DllregisterServer和DllUnregisterServer使用
主要功能
轻松修复IE浏览器
很多经常上网的朋友都有过这样的经历:IE不能打开任何新的窗口,用鼠标点击超链接,也没有任何的反应。这是一般情况下需要重新启动机器或者重新安装IE就能解决问题。其实根本没这么 麻烦,使用Regsvr32.exe命令就可以轻松搞定。在开始---运行里输入“Regsvr32.exe actxprxy.dll”回车 确定;再次输入运行Regsvr32.exe shdocvw.dll”回车。重新启动计算机后IE被轻松修复。上网一切正常如初。
在线升级的问题
windows漏洞很多。每隔一段时间都需要使用windows update来升级自己的系统。可这个程序总是出现无法使用的情况。这个时候使用regsvr32.exe又可以帮助我们解决这个问题。开始---运行--输入regsvr32.exe wupdinfo.dll回车。这是系统重新注册了Update的组件。重新启动机器后又可以升级你的系统。
卸载鸡肋功能
XP系统中有的服务不仅占用系统资源严重,而且功能要强不强,要弱不弱。根本不如一些专业的软件来的方便。比如它的图片预览功能和ZIP压缩功能。这个时候我们就可以使用regsvr32.exe工具来卸载掉这些鸡肋。开始--运行---输入regsvr32.exe /u zipfldr.dll就可以卸载掉功能。如以后需要这个功能,只需要再次输入regsvr32 zipfldr.dll即可。同样,开始-运行---输入regsvr32.exe /u thumbvw.dll就可以卸载掉图片预览功能。需要恢复时输入regsvr32 thumbvw.dll。
防范脚本病毒
网络脚本病毒会在你浏览网页的同时不知不觉的被感染。这种病毒有时候一般的杀毒软件根本查不到。其实这种病毒很多情况下都是调用了FSO对象(file system object文件系统对象)。因此我们只需要禁止FSO就可以有效的防止这种病毒的传播。操作的方法也很简单。
开始-运行--输入“regsvr32.exe /u scrrun.dll就可以禁用FSO。需要时输入regsvr32.exe scrrun.dll即可。 相信很多朋友看见上面的介绍多少对regsvr32.exe都有了一些了解。其实这个命令是windows中控件文件(扩展名为.dll ,.ocx,.cpl)的注册和反注册工具。这个命令在WIN98下的位置在/WINDOWS/SYSTEM中。其实一般情况下,所谓的注册的意义就是把一些控件文件放在它应该在的位置上(不严格的说)。而有一些系统的控件或者其它情况下用这个命令就方便的多。关于这个命令的参数,请大家参考此贴的第一个图。一般情况下只用到/U这个参数。
修复缩略图文件
2000: 开始→运行,输入regsvr32 thumbvw.dll
XP: 开始→运行,输入regsvr32 shimgvw.dll这条主要是解决windows图片和传真查看器的右键没有“设为桌面背景”的!!特注!
WMP播放器支持RM
很多朋友喜欢用Windows Media Player(以下简称WMP)播放器,但是它不支持RM格式,难道非得安装其它播放软件吗? 以Win XP为例,首先下载一个RM格式插件,解压缩后得到两个文件夹: Release(用于Windows 9x)和Release Unicode (用于Windows 2000/XP);将Release Unicode文件夹下的
RealMediaSplitter文件拷贝到“系统盘符WINDOWSSystem32”目录下;在“开始→运行”中键入“regsvr32 RealMediaSplitter”,点击“确定”即可。接着下载解码器,如Real Alternative,安装后就能用WMP播放RM格式的影音文件了。
WMP9播放器
有些音乐网页的在线点歌需要用到Media Player,有的朋友明明安装了WMP9,但在线听音乐却只看到枯燥的WMP6播放器面板,想让漂亮的WMP9面板出现,当然没问题的。 常见问题的操作系统多数WIN 98,先关闭IE,再在“开始→运行”中键入“regsvr32 wmpdxm.dll”,点击“确定”即可。
系统功能无反应
regsvr32 shdocvw.dll
有时从开始菜单里点击XP系统的搜索功能、帮助和支持或管理工具等,但就是无任何反应,这是它们的打开方式缺少关联,所以我们只要用regsvr32注册它们需要调用的动态连接库文件就行了。
添加/删除程序
当打开控制面板中的添加/删除程序时,双击它的图标后无反应,或者打开后自动关闭了,尝试使用以下命令可以解决。
regsvr32 mshtml.dll
regsvr32 jscript.dll
regsvr32 msi.dll
regsvr32 "c:program filescommon filessystemole dboledb32.dll"
regsvr32 "c:program filescommon filessystemadomsado15.dll"
regsvr32 mshtmled.dll
regsvr32 /i shdocvw.dll
regsvr32 /i shell32.dll
十、用户帐户打不开
regsvr32 nusrmgr.cpl
regsvr32 mshtml.dll
regsvr32 jscript.dll
regsvr32 /i shdocvw.dll
十一、在线升级的问题
regsvr32 wupdinfo.dll 虽然这两个命令能修复,但治标不治本,我建议遇到此问题的朋友到微软网站进行IE安全更新,即打漏洞补丁。
regsvr32 jscript.dll
regsvr32 vbscript.dll
可以很好的解决浏览某些网页无法正常显示和功能不正常。修复个别窗口空白,如XP的‘搜索’功能的搜索助理操作面板空白、系统还原页面空白和用户帐户页面空白等(可修复把握度100%) 。解决windows media player 9或以上版本打开时提示‘出现内部应用程序错误’(可修复把握度100%) 。
可以修复win 2000的‘添加/删除程序’打开后一片空白(可修复把握度99%) 。解决win 2000以WEB方式查看Program Files文件夹和Winnt文件夹时看不到任何文件,以及‘控制面板’的图标跑到左边去的问题。解决网页上网际快车的右键菜单功能无法使用。 在网站中,当右键点某个‘下载连接’时,会弹出菜单,选择‘使用网际快车下载’会再弹出FLASHGET的下载任务页面,如果发现该功能无反应,那就可能是这个原因:原来这项菜单是调用了FLASHGET目录下的jc_link.htm文件,这个文件是用VB语言编写的,所以其作用丢失是动态连接库vbscript.dll没有注册和调用到。等等
Regsvr32.exe 错误消息
以下列表介绍了 RegSvr32 错误消息和可能的原因。
Unrecognized flag:/invalid_flag
键入的标志或开关组合无效(请参阅本文中的“Regsvr32.exe 的用法”一节)。
No DLL name specified.
未包括 .dll 文件名(请参阅本文中的“Regsvr32.exe 的用法”一节)。
Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found.
Dllname 不是 .dll 或 .ocx 文件。例如,键入 regsvr32 wjview.exe就会生成该错误消息。
Dllname is not an executable file and no registration helper is registered for this file type.
Dllname 不是可执行文件(.exe、.dll 或 .ocx)。例如,键入 regsvr32 autoexec.bat 就会生成该错误消息。
Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found.
Dllname 可能未导出,或者内存中可能有损坏的 Dllname 版本。请考虑使用 Pview 来检测该文件并删除它。
Dllname is not self-registerable or a corrupted version is in memory.
例如,键入 regsvr32 icwdial.dll 后就会返回该错误消息,因为 Icwdial.dll 文件不能自行注册。如果您怀疑内存中有损坏的 Dllname 版本,请尝试重新启动计算机,或重新提取该文件的原始版本。如果您运行的是 Windows NT,可能需要使用 Microsoft Windows NT Server 4.0 资源工具包 中的 Kill 或 Pview 工具。有关其他信息,请单击以查看以下 Microsoft 知识库文章:
197155 如何终止孤立进程
OleInitialize failed (or OleUninitialize failed).
Regsvr32 必须先初始化 COM 库,然后才能调用所需的 COM 库函数并在关闭时撤消对该库的初始化。如果对 COM 库进行初始化或撤消初始化的尝试失败,就会出现这些错误消息。例如,Ole32.dll 文件可能已经损坏,或者其版本有误。
LoadLibrary("Dllname") failed.GetlastError returns 0x00000485
在 Winerror.h 中,0x00000485 = 1157 (ERROR_DLL_NOT_FOUND),表示“找不到运行该应用程序所需的某个库文件”。例如,键入 regsvr32 missing.dll 后,如果找不到 Missing.dll 文件,就会返回该错误消息。
LoadLibrary("Dllname") failed.GetLastError returns 0x00000002
在 Winerror.h 中,0x00000002 = 2 (ERROR_FILE_NOT_FOUND),表示“系统找不到指定的文件”。换言之,系统找不到相关的 DLL。例如,如果键入 regsvr32 icwdial.dll,而此时缺少 Tapi32.dll(依赖项),就会返回该错误消息。
LoadLibrary("dskmaint.dll") failed.GetLastError returns 0x000001f
在 Winerror.h 中,0x000001f = 31 (ERROR_GEN_FAILURE),表示“附加到系统上的设备不能正常工作”。如果您尝试注册 Win16 .dll 文件,就会发生此现象。例如,键入 regsvr32 dskmaint.dll 会返回该错误消息。
DllRegisterServer (or DllUnregisterServer)in Dllname failed.返回代码是:字符串
在 Winerror.h 中搜索字符串。
Regsvr32.exe 和依赖项
RegSvr32.exe 依赖于 Kernel32.dll、User32.dll 和 Ole32.dll 文件(在 Windows NT 中,还依赖于 Msvcrt.dll 和 Advapi32.dll 文件)。Regsvr32.exe 会加载您尝试注册或撤消注册的文件及其所有依赖项。如果缺少必需的文件或者它们已损坏,该进程可能会失败。
您可以使用 Depends.exe 来确定您尝试注册或撤消注册的文件的依赖项。在 Microsoft Windows 98 资源工具包 和 Microsoft Windows NT 4.0 资源工具包 支持工具中都提供了 Depends.exe。
247024 Tools Included with the Microsoft Windows 98 Resource Kit
如果你以上问题都尝试过了还是在关机的时候出现此问题,如果你确认你自己安装中国工商银行的反钓鱼软件。
请您卸载此软件。
十二,恢复显示桌面
在进行日常的电脑操作时,有时会急需调出桌面,但又不关闭已打开的窗口,Windows对此添加了显示桌面的快捷键,默认在“开始”右边的第一个快捷方式。有时快捷栏里显示桌面图标会丢失,或被误删除。这时可以用regsvr32命令来解决。
开始》 运行》 regsvr32 /n /i:u shell32
十三,WMP任务栏
在正常情况下,打开media player并将其最小化,右击任务栏空白处“工具栏”勾选“windows media player”选项,此时media player将会以最小播放机的形式在任务栏右方显示。但现在在------“工具栏”上没有“Windows media player”选项,也就无法将media player转化为最小播放机的形式在任务栏上显示了。
解决命令:regsvr32 "%ProgramFiles%Windows Media Playerwmpband.dll