.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、再编译工程,没有错误,大功告成。

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

相关文章推荐

如何在bat中请求管理员权限

REM  --> Check for permissions >nul 2>&1 "%SYSTEMROOT%\system32\icacls.exe" "%SYSTEMROOT%\system3...

管理员权限运行批处理的几种方法

废话不说。解决win7运行批处理出错不能注册dll等问题。 1.在批处理的第一行加入:cd /d %~dp0 然后在批处理上右键选择使用管理员权限运行。 2.右键任务栏,选择资源管理器,进程选项卡...
  • nxeexn
  • nxeexn
  • 2011-11-04 17:30
  • 41648

批处理命令获取管理员的权限

1、 cls @echo off title 获取管理员权限 mode con cols=100 lines=20 color 3f :: 开始获取管理员权限 setlocal ...

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

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

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

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

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

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

TeeChart8.ocx 自动注册程序

  • 2013-12-28 11:51
  • 5.26MB
  • 下载

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

新建一个记事本,把下面的代码复制进去,然后把文件后缀名改为.reg,双击运行即可取得管理员权限 添加管理员权限: Windows Registry Editor Version...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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