Windows 注册和取消注册一个dll或者ocx
一、DLL是什么
DLL,是Dynamic Link Library 的缩写形式,中文名称为动态链接库。
DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。
二、OCX是什么
OCX是OCX控件的简称。OCX控件全称为对象类别扩充组件(Object Linking and Embedding (OLE) Control eXtension)。它的作用其实和刚才谈到的DLL文件特别相像,其实所谓的OLE我们平时已经非常熟悉了,简单地说就像在Word中可以使用Excel数据,写字板中可以嵌入图片文件等等这些功能。打个比方的话,剪贴板就像是个简单的数据共享,而OLE则是一种“对象共享”。
控件的本质是微软公司的对象链接和嵌入(OLE)标准。由于它充分利用了面向对象的优点,使得程序效率得到了很大的提高,从而得到了广泛的应用。国外有很多公司就是专门制作各种各样控件的。控件的最早形式是以.VBX的格式出现的,后来变成了.OCX。
三、为什么要注册DLL和OCX
如果DLL文件或者OCX文件没有注册,系统注册表中就没有这个DLL文件或者OCX文件信息.那么等到调用的时候,因为不知道这个DLL文件或者OCX文件的位置,只能报告没有这个DLL或者OCX文件.所以这时候就需要注册DLL了.
DLL文件或者OCX文件注册后会在注册表里生成该组件的唯一guid号码,程序引用的这个组件才能找到DLL或者OCX文件,才能使用该DLL或者OCX组件的功能
【小提示】 Windows系统的DLL因为在安装时已经注册好了,因此不用注册,但是如果因为某种情况系统无法识别这些DLL文件时,还是需要我们手动再注册一遍。
三、通过命令注册或者取消注册DLL或OCX
开始--运行--cmd,打开命令行工具。
注册命令: regsvr32 [dll或者ocx的绝对路径] 该路径可以复制,也可以直接将ocx或者dll文件拖入cmd窗口,自动得到路径,较为方便。
取消注册命令:regsvr32 /u [dll或者ocx的绝对路径]
四、添加右键快捷菜单来注册DLL或OCX
经常要注册或者取消dll与ocx,老是输入cmd命令太麻烦,于是新建两个右键快捷菜单,方便多了。
1、打开注册表 依次打开 “开始/运行”,输入“regedit”
2、添加右键注册dll组件快捷菜单 依次打开“HKEY_CLASSES_ROOT\Dllfile”,右键选择“新建项”,新建项“shell”(如果已经有了则不用新建),再在其下以同样的方法新建“Register”。其中,“Register”就是对.dll或.ocx右键弹出的菜单中项名,再在其下建“command”,双击“默认值”将其改为“Regsvr32 %1”。
3、添加右键取消注册dll组件快捷菜单 依次打开“HKEY_CLASSES_ROOR\Dllfile\shell”,右键选择“新建项”,新建项“Unregister”。其中,“Unregister”就是对.dll或.ocx右键弹出的菜单中的选项名,再在其下建“command”,双击“默认值”将其改为“Regsvr32 %1 /u”。
4、对ocx的注册和取消注册 同理,需要注意的是把上面2和3中的“Dllfile”改为“Ocxfile”即可。
5、桌面F5刷新。找一个dll或者ocx文件,右键试一下吧。多方便!
6、郑重声明:该方法对路径中有空格的失效,比如路径名中包含C:/Program Files的。只能通过cmd命令搞定。(通过添加双引号已解决,如)
[HKEY_CLASSES_ROOT\Dllfile\shell\Register DLL\Command]
@="Regsvr32 %1"
改为
[HKEY_CLASSES_ROOT\Dllfile\shell\Register DLL\Command]
@="Regsvr32 \"%1\""
7、至于删除右键菜单,在注册表删除对应项即可
注:也可以复制以下文件到记事本,然后保存成.reg文件执行即可
添加右键菜单
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Dllfile\shell\Register DLL\Command]
@="Regsvr32 %1"
[HKEY_CLASSES_ROOT\Dllfile\shell\UnRegister DLL\Command]
@="Regsvr32 /u %1"
[HKEY_CLASSES_ROOT\Ocxfile\shell\Register OCX\Command]
@="Regsvr32 %1"
[HKEY_CLASSES_ROOT\Ocxfile\shell\UnRegister OCX\Command]
@="Regsvr32 /u %1"
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Dllfile\shell\Register DLL\Command]
@="Regsvr32 \"%1\""
[HKEY_CLASSES_ROOT\Dllfile\shell\UnRegister DLL\Command]
@="Regsvr32 /u \"%1\""
[HKEY_CLASSES_ROOT\Ocxfile\shell\Register OCX\Command]
@="Regsvr32 \"%1\""
[HKEY_CLASSES_ROOT\Ocxfile\shell\UnRegister OCX\Command]
@="Regsvr32 /u \"%1\""
删除右键菜单
Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\Dllfile\shell\]
[-HKEY_CLASSES_ROOT\Ocxfile\shell\]
Windows 注册和取消注册一个dll或者ocx的更多相关文章
- 控件注册 - 利用资源文件将dll、ocx打包进exe文件(C#版)
原文:控件注册 - 利用资源文件将dll.ocx打包进exe文件(C#版) 很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个e ...
- Windows 下 exe 服务注册到 service 服务中
window 下注册 exe 程序.添加到 服务中. window 注册服务方式 一. regsvr 方式 直接在 程序目录执行: Regsvr 32 命令是Windows中控件文件 ( 如扩展名为D ...
- DLL和OCX注册
在注册DLL或者OCX的方法应该使用regsvr32.exe,使用得多了一定会觉得在cmd运行中写一长串东西很烦人吧!这里向大家介绍一种麻烦一次方便一生的方法.这个方法只要右击你想注册或者反注册的DL ...
- RegisterDllAndOcx.bat -批量注册当前文件夹中的dll和ocx
批量注册当前文件夹中的dll和ocx 新建文件:RegisterDllAndOcx.bat @echo off echo hello,girl~~ for %%i in (*.dll *.ocx) ...
- 关于Windows Azure的常见问题-注册问题FAQ
注册问题 手机验证出现问题怎么办? 当您输入发送到手机里的验证码到文本框时,您需要点击右侧的“验证代码”的按钮,待按钮转变为“绿色对勾”的标识后,您可以点击“继续”来完成余下的注册步骤.每一个手 机号 ...
- 如何注册dll、ocx控件
在程序集成时,有时需要对厂家提供的dll或者ocx控件进行注册.其一般操作为:开始>命令指示符(右击管理员身份运行)>regsvr32 文件路径. 比如对devocx.ocx进行注册,在F ...
- [Windows Phone]解锁、注册Windows Phone实体手机为开发机(Windows 8)
原文:[Windows Phone]解锁.注册Windows Phone实体手机为开发机(Windows 8) 前言 ? ? 最近要开发Windows Phone(以下简称WP)的手机游戏,由於使用模 ...
- 为什么不取消注册BroadcastReceiver会导致内存泄漏
原始问题是这样 然后扔到了很多Android开发交流群里. 接着产生了很多的见解,我感觉比较靠谱的有以下: 网友对我问题的回答 1.onDestroy被回调代不代表Activity被回收了? 官方是这 ...
- 如何让windows启动后,自动加载一个DLL
在以下注册表项中找到下面的位置: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLL ...
随机推荐
- 会员卡管理系统技术解析(十八)Timer定时监听
会员卡管理系统技术解析(十八)Timer定时监听 在web应用中,有时候客户须要一些定时程序.不须要客户自己去操作.而是由应用程序自行触发(代理)运行某些操作. 这个时候监听与定时器的配合使用就基本能 ...
- Android SharedPreferences复杂的存储
我们知道SharedPreferences简单类型的数据.比如.String.int等. 假设想用SharedPreferences存取更复杂的数据类型(类.图像等),就须要对这些数据进行编码. 我们 ...
- Visual Studio中开发
如何在Visual Studio中开发自己的代码生成器插件 Visual Studio是美国微软公司开发的一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代 ...
- 配置Tomcat出现Unsupported major.minor version 51.0
在配置tomcat时,配置好jdk1.6,下载的tomcat8.0,结果执行start-up.bat,总是一闪而过,网上查了大量的资料,都说是可能是jdk没配置好,但实际上jdk的环境变量设置正常,后 ...
- Java设计模式菜鸟系列(十四)代理模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39856435 代理模式(Proxy):代理模式事实上就是多一个代理类出来,替原对象进行一些 ...
- C和指针 (pointers on C)——第十一章:动态内存分配(下)习题
1.编写calloc,内部用malloc. void *calloc (size_t n, size_t size) { char * memory; memory =(char*) malloc(n ...
- Vijos.1096 津津储蓄计划
见问题: https://vijos.org/p/1096 主题概述 津津的零花钱一直都是自己的管理.每月初的母亲津津300美元,津津将于本月支出预算.而且总是做同样的实际支出与预算. 为了让津津学 ...
- BZOJ 3122 SDOI2013 随机数发生器 数论 EXBSGS
标题效果:给定一列数X(i+1)=(a*Xi+b)%p 最低要求i>0.所以Xi=t 0.0 这个问题可以1A那很棒 首先讨论特殊情况 如果X1=t ans=1 如果a=0 ans=b==t? ...
- 【源代码】LinkedList源代码分析
//----------------------------------------------------------- 转载请注明出处:http://blog.csdn.net/chdjj by ...
- String.Format in Java and C#
原文:String.Format in Java and C# JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String ...