.bat文件注册.ocx+win8开机获得管理员权限+运行程序自动注册.ocx
本文主要是针对做的项目遇到的问题写的东西。
此项目是基于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文件注册.ocx+win8开机获得管理员权限+运行程序自动注册.ocx相关推荐
- 以管理员权限运行程序需注意
//以管理员权限运行程序,防止拖拽文件出现问题的代码 ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD); ChangeWindowMessageF ...
- 使用runas命令让域用户可以以管理员权限运行程序
在域环境中,为了用户的信息安全着想,域用户一般没有管理员权限.但是有些软件必须用管理员身份运行才能正常使用,特别是财务类的一些软件.如果为了某些软件而放开管理员权限似乎又不太符合安全规定,此时,我们可 ...
- Objective-C MacOS以管理员权限运行程序
在MacOS下很多操作是需要管理员权限的, 比如我们运行chmod,在命令行下可以使用sudo chmod来申请以管理员权限运行.但是使用XCode写的程序是不能使用sudo的. 需要自己写代码来申请 ...
- 命令行修改桌面快捷方式以管理员权限运行
在做PC端打包的时候,发现程序在Win10 系统中安装后,双击桌面快捷方式,不能正常访问安装目录中的一些文件,后来发现必须以管理员权限运行,这个就有点糟心了,程序交付给客户之后,总不能每次都让客户选中 ...
- 如何在Windows 11中以管理员身份运行程序:10种方式可以选择
如何在Windows 11中以管理员身份运行程序 为防止对操作系统进行未经授权的更改,Windows 11应用程序和游戏默认以标准权限启动,但某些程序(如安全软件)需要管理员权限才能正确运行或执行特定 ...
- C# 普通权限运行程序\非管理员运行\降低权限运行
一.目的与实际 1.VS设置管理员权限运行程序后,发现调用powershell命令或程序需要普通权限即可,Administrator权限反而错. 2.网上搜索关键字,大部分都是怎么使用管理员权限运行. ...
- xp无法使用计算机管理员权限,xp无法无法使用管理员权限运行软件的解决步骤...
在使用一些不常用软件的时候,我们经常需要管理员的权限,因为只有管理员才有足够的权限来运行系统上的一些东西,可是在xp系统上有时候无法使用管理运行一些东西,怎么办呢,如图所示要怎么办? 小编终于找到了一 ...
- 请求以管理员权限运行win+r查询的程序
1 win+r 打开运行窗口 2 ctrl + shift + enter 请求以管理员权限运行程序
- 设置Win10批处理bat文件默认以管理员权限运行
要使bat文件默认以管理员权限运行有多种方法: 在该bat文件开头添加某些代码,实现该bat文件默认以管理员权限运行. 通过命令行修改系统设置,使得cmd默认进入管理员模式. 通过创建快捷方式,设定快 ...
最新文章
- C++ STL的sort 函数 以及自定义的比较函数
- NXT节点搭建(二)环境搭建
- java核心(十五):List、Set、Map功能分析
- java数独最快解_[分享]数独的JAVA解法
- 声明对象_计算机各语言数据类型及对象声明之区别
- 深入解读 MySQL 架构设计原理,剖析存储架构选型核心
- C语言 关键字const的作用
- 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递
- js时间格式化 YYYY/MM/DD HH:MM:SSS
- C#开根号函数:math.pow()函数
- 机器人导航,人工势场法的地图导航规划
- Pre-commit:如何使用 husky、lint-staged和prettier优化你的项目
- android基本布局-TableLayout_表格布局
- Matlab 各种画图函数用法
- 计算机的程序代码是储存在什么中的,计算机的一切程序和数据都是以什么情势贮存?...
- rem 与 px 换算关系
- 955.WLB 不加班公司名单!再新增 5 家公司!
- 在VMware上安装win10
- InvalidArgumentError: Can not squeeze dim[1], expected a dimension of 1, got 10 for metrics/acc/
- c#filestream与streamwriter用法