ocx注册方法,vs安装包自动安装ocx,以及ocx注册失败的解决方法

一、ocx注册方法

方法一:使用cmd手动注册ocx

1、以管理员身份运行cmd

2、注册ocx,输入命令:regsvr32 "ocx文件的完整路径"  

  3、如果注册成功,会显示下图弹窗。

 

 方法二:使用bat命令注册ocx(使用管理员权限运行)

1、创建文本文件,写入下列命令(将下列命令中VideoWebCtl.ocx替换成你需要注册的ocx名称即可)

cd /d %~dp0
regsvr32 VideoWebCtl.ocx

2、修改文件后缀名为.bat,将该bat文件放置ocx所在文件夹下

3、然后使用管理员权限运行该bat文件即可。

 方法三:使用bat命令注册ocx(双击运行bat文件,无需使用管理员权限运行)

1、创建文本文件,写入下列命令(将下列命令中VideoWebCtl.ocx替换成你需要注册的ocx名称即可)

@echo off
:获取管理员权限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",0)(window.close)&&exit
:保持当前目录下运行
cd /d "%~dp0"
regsvr32 /s VideoWebCtl.ocx

2、修改文件后缀名为.bat。然后双击运行该bat文件即可。

扩展:vs安装包自动安装ocx

如果想在C#程序安装时直接自动注册ocx,而不是手动注册,首先将上面方法三中创建的bat文件打包至你的安装包中(下面所示Installer1类的介绍请看-->vs安装包的制作可参考这里 -->打包程序增加自定义操作),然后在自定义安装类Installer1中,写如下代码:

[RunInstaller(true)]
public partial class Installer1 : System.Configuration.Install.Installer
{
    // 调用shell32库中ShellExecute实现运行一个外部程序
    [DllImport("shell32.dll")]
    public extern static int ShellExecute(IntPtr hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, int nShowCmd);

    public Installer1()
    {
        InitializeComponent();
    }

    // 安装程序安装后执行
    private void Installer1_AfterInstall(object sender, InstallEventArgs e)
    {
        // 获取程序安装路径
        string installPath = this.Context.Parameters["targetdir"].TrimEnd('\\');
           
        try
        {
            // 获取ocx的bat命令文件位置(该位置根据自己实际放置的路径进行设置)
            var ocxPath = Path.Combine(installPath, "ocx", "InstallOCX.bat");
            // 调用系统函数运行bat文件,从而代替手动双击运行bat文件
            var res = ShellExecute(IntPtr.Zero, "Open", ocxPath, "", "", 0);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}

二、ocx注册失败解决办法

ocx注册失败,错误代码为0x80040200,错误信息如下图:

情况一:被安全软件拦截导致注册失败,可以关闭安全软件,比如360、瑞星等杀毒或者其它权限管理工具后重新安装软件或重新运行bat试试

情况二:系统权限问题,使用管理员权限运行bat文件,或者使用管理员权限运行cmd手动注册ocx。方法参见“一、ocx注册方法”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值