.bat文件注册.ocx+win8开机获得管理员权限+运行程序自动注册.ocx

原创 2015年12月03日 14:54:49

本文主要是针对做的项目遇到的问题写的东西。


此项目是基于VS2010开发,C++编写算法部分,界面部分为C#,这就需要将C++的部分做成ActiveX控件,拖到C#界面中。我们知道,ActiveX控件形式基本为.dll文件与.ocx文件。这样的文件若想被C#调用前提是要在本地注册。


问题是,之前师兄开发是用的WIN7 32位的,这没有任何问题,我接管这个项目之后,我的电脑为WIN8 64位系统,注册.ocx问题就出现了。


1、如何在WIN8系统中注册.ocx文件


这个比较坑,网上一般教程针对的是一个独立的.ocx注册。即只需要将.ocx拷贝到系统目录C:\Windows\System32(64位)、或者是C:\Windows\SysWOW64(32位)。然后在此路径中找到cmd.exe,以管理员的身份运行,注册即可。


然而,很多.ocx文件不是孤立的,它还依赖很多.lib库,如果把这些.lib文件也拷过去注册,当然没问题。但是每次都这样很麻烦。所以就想可不可以不把.ocx拷贝到系统目录直接注册。答案可行,具体操作过程:

(1)、在C:\Windows\SysWOW64文件夹下,找到cmd.exe,右键以管理员身份运行。


进入.ocx所在的文件夹:


用regsvr32注册.ocx控件


这样就注册成功了。

2、编写.bat自行运行注册.ocx。

但是这样的结果就是,如果.ocx是你自己正在开发的,你一直在修改它,每次调试,你都得要重新手动注册一次,相当麻烦,而且是要运行cmd命令注册。这样就可以转到使用.bat自行注册。使用.bat注册需要编写.bat。先建一个.txt,然后改后缀名,右键编辑。贴入代码:

@echo off
cd /d %~dp0  
if "%processor_architecture%"=="x86" goto REG32  
if "%processor_architecture%"=="AMD64" goto REG64  
:REG32  
regsvr32 "Med-Image Analyzer.ocx"   
goto exit  
:REG64
regsvr32 "Med-Image Analyzer.ocx"    
goto exit  
:exit  

把.bat文件放在.ocx所在目录,好了,我们不需要每次都运行cmd注册了,可是问题又出来,每次编译工程都会报错。报错内容是:


泪崩,以我调试的经验教训,出现注册失败基本是因为权限不够,就是说,虽然我运行了.bat注册,但是不是以管理员身份运行的。所以我需要再以管理员身份运行.bat才能成功。也是醉了。换句话说我还是没有实现全自动注册.ocx而不出现错误。

3、WIN8系统开机即获得管理员权限。

既然我不是以管理员身份运行的.bat,那么我每次编译工程的时候如果.bat可以自动获得管理员权限问题就可以解决了。

由此我联想到之前师兄在WIN7 32位系统下也不需要每次手动运行.bat。网上查了相关资料。可以使WIN8系统开机获得管理员权限。

WIN+R输入gpedit.msc进入本地组策略管理器。


然后,计算机配置-》Windows设置-》安全设置-》本地策略-》安全选项,找到对应的“用户账户控制:以管理员批准模式运行所有管理员”将其禁用,重启计算机即可。


4、.bat获得权限了,可能还会出现刚才的问题,没注册成功,这就需要对工程属性设置了。

找到属性页。在链接项中看到两个选项,一个是Register out ,设为YES,一个是Per-user Redirection.设为NO。



5、再编译工程,没有错误,大功告成。

版权声明:本文为博主原创文章,未经博主允许不得转载。

windows bat注册ocx文件

上次代码里需要用到微软的一个库文件,使用的时候需要提前注册,所以打包时候要注意将这个ocx文件进行注册。下面是脚本文件内容: @echo off @set root=%~dp0 :获取当前监本文...

批量注册两个或多个DLL / OCX 的BAT批处理

regsvr32.exe是32位系统下使用的DLL注册和反注册工具,使用它必须通过命令行的方式使用,格式是: regsvr32 [/u] [/s] [/n] [/i[:cmdline]] DLL文件...

使用批处理来注册OCX文件的若干问题

把每次遇到并解决了的问题记录下来,形成文档,这便是一种财富。--沉森心        问题描述:        客户投诉说,安装完软件包后,打开某个业务模块,点击打印预览按钮时,没反应,不能打印。  ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Win7上使用批处理程序注册ocx控件

转至:http://blog.163.com/hu_yating125/blog/static/18233809520123257370468/ 平时注册ocx控件,可以以管理员身份运行cm...

win7/win8 64位系统注册TeeChart8.ocx 控件---以及dllregisterserver调用失败问题解决办法

TeeChart控件就不多介绍了,很多朋友不知道开始怎么注册使用,尤其是在64位系统下如何注册的问题,具体如下: win7、win8  64位系统问题所在: 64位的系统一般都是可以安装32位程序...
  • Geek___
  • Geek___
  • 2015年04月05日 13:29
  • 5648

Windows 8安装软件时遇到运行时错误‘339’ MSCOMCTL.ocx或其附件之一未注册

今天安装软件的时候出了这样的问题:运行时错误‘339’ MSCOMCTL.ocx或其附件之一未注册 于是到网上查找了一下,大家都说是缺少一个叫mscomctl32.ocx的东东,而且很多人都...

win8获得最高管理员权限复制删除无法删除文件

新建一个记事本,把下面的代码复制进去,然后把文件后缀名改为.reg,双击运行即可取得管理员权限 添加管理员权限: Windows Registry Editor Version...

VB控件:mscomm32.ocx,带bat注册程序

  • 2010年07月16日 08:33
  • 53KB
  • 下载

批量注册一个或者多个DLL / OCX 的BAT批处理

regsvr32.exe是32位系统下使用的DLL注册和反注册工具,使用它必须通过命令行的方式使用,格式是: regsvr32 [/u] [/s] [/n] [/i[:cmdline]] DLL文件...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.bat文件注册.ocx+win8开机获得管理员权限+运行程序自动注册.ocx
举报原因:
原因补充:

(最多只允许输入30个字)