Windows 注册和取消注册一个dll或者ocx

原文: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\]
时间: 2024-10-29 12:00:13

Windows 注册和取消注册一个dll或者ocx的相关文章

控件注册 - 利用资源文件将dll、ocx打包进exe文件(C#版)

原文:控件注册 - 利用资源文件将dll.ocx打包进exe文件(C#版)       很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个exe,点击直接运行呢?就像很多安全控件,如支付宝的aliedit.exe那样.         现在介绍一种使用资源文件,将dll.ocx打包进exe,点击直接注册的例子:       首先,新建一个工程RegisterFile.  新建文件夹Resource,里面添加需要注册的ocx或

如何写.bat把一个dll文件注册到HKEY_LOCAL_MACHINE\SOFTWARE\下

问题描述 如何写.bat把一个dll文件注册到HKEY_LOCAL_MACHINESOFTWARE下 解决方案 解决方案二:REGSVR32.EXEC:msvbvm60.dll/SCLSexit解决方案三:dll注册在class_root下,不在local_machine下.不清楚你说的"注册"是什么意思.解决方案四:regsvr32XXXXexit

Windows优化大师怎么清理注册信息

  当我们的电脑用久后,会有很多注册信息,已经没有用,但是不知道怎么删除,占据着电脑内存,这些冗余信息不仅影响了注册表本身的存取效率,还会导致系统整体性能的降低.因此,Windows用户有必要定期清理注册表.今天,小编就来跟大家分享Windows优化大师怎么清理注册信息. Windows优化大师怎么清理注册信息 Windows优化大师的注册表清理选项如下: 1.扫描HKEY_CURRENT_USER中的冗余信息 注册表中的HKEY_CURRENT_USER分支是一个指向HKEY_USERS的子分

DOS环境下玩转Windows注册表_注册表

注册表编辑器不仅可以在Windows下运行使用,还可以在MS-DOS实模式下运行.有时注册表受到损坏而无法启动Windows时,我们就只有在DOS模式下修复或修改注册表了.注册表的实际物理文件为System.dat和User.dat,也就说注册表中的数据保存在这两个文件中.  导出注册表  此命令可以实现对注册表文件进行备份.  命令格式:Regedit /L:system /R:user /E filename.reg Regpath  参数含义:  /L:system指定System.dat

[Windows Phone]解锁、注册Windows Phone实体手机为开发机(Windows 8)

原文:[Windows Phone]解锁.注册Windows Phone实体手机为开发机(Windows 8) 前言 ? ? 最近要开发Windows Phone(以下简称WP)的手机游戏,由於使用模拟器实在有些慢,加上装在实体手机上运行会比较有感觉,所以便购买了一只Lumia 920来做为开发机,但是当我要开始把开发的程式Port到实体手机时,却遇到了「无法连接到手机,因为该装置处於开发人员锁定状态....」等讯息! ? 究竟是怎麽回事呢? 要如何解决呢? 其实我们需要对手机做一个注册的动作.

WPF容器控件取消注册问题

问题描述 当我在wrapPanel1中加了多个控件并且意义注册了在我从新设置界面的时候,我要把wrapPanel1容器中的已有控件删除了,再添加新的控件自带的有清除所有控件的命令wrapPanel1.Children.Clear();但是这个清除后,控件不见了,在我重新创建的时候,当再次注册同名控件的时候提示我已经存在,重复了,唯一的办法就是容器内的控件一个一个注销掉了,有什么办法像wrapPanel1.Children.Clear();一样,一下子把注册都取消掉的方法吗 解决方案 解决方案二:

Mac OS X/CentOS/Ubuntu/Windows 多系统 nginx 注册为系统服务

nginx 提供了 -s signal 命令行参数让我们对其进行操作.我们可以很方便地利用 -p prefix 参数指定启动路径来启动多个完全隔离的 master 进程:还可以使用 -c filename 显式指定不同的配置文件. 由于 prefix 的路径一般都比较长, reload 或者 reopen nginx master 进程就会比较不方便.此时可以采用我在 在 OS X 中使用 OpenResty ? 3.快捷方式 中提到的自建快捷方式的形式来简化这些操作. 更一般的,在服务器上我们

Windows 7/XP的注册表怎么打开

  windows xp系统下打开注册表编辑器方法 方法一:在我的电脑桌面 开始 - 运行 在运行框里输入 regedit 按确定(回车)即可进入注册表,如下图: 方法二:找到注册表运行文件 一般在windows xp系统中注册表程序文件都是在系统C盘里的Windows目录下,找到文件名为regedit.exe运行程序.直接运行该注册表程序即可打开注册表了,如果您经常使用注册表使用该方法很方便,我们可以把regedit.exe运行程序发送到桌面快捷方式即可,方法是鼠标放在regedit.exe文

eclipse-java程序中注册系统级热键之dll问题

问题描述 java程序中注册系统级热键之dll问题 我下载了jintellitype-1.3.1.jar后,把JIntellitype.dll复制到了C:WINDOWSsystem32下,然后在eclipse工程名在点击右键--属性--Java构建路径--库--添加外部jar,然后把jintellitype-1.3.1.jar添加到工程中,编译后还是发生错误: 信息: Loading JIntellitype DLL Exception in thread "main" com.mel