打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC++注册,卸载OCX控件,以及判断是否注册
userphoto

2011.02.23

关注
http://blog.csdn.net/luheng2006/archive/2010/08/19/5824399.aspx

注册OCX控件

BOOL CYourClass::RegistOcx()

{

    HINSTANCE hLib = LoadLibrary("NTGraph.ocx");      //指定要注册的ocx文件的路径及文件名。
 
    if (hLib == NULL)
    {
         MessageBox("不能载入OCX文件!");
         return;
    }

    //获取注册函数DllRegisterServer地址
    FARPROC lpDllEntryPoint;
    lpDllEntryPoint = GetProcAddress(hLib,"DllRegisterServer");

    //调用注册函数DllRegisterServer
    if(lpDllEntryPoint!=NULL)
    {
        if(FAILED((*lpDllEntryPoint)()))
        {
            //MessageBox(Handle,"调用DllRegisterServer失败!","失败ing..",MB_OK);
            MessageBox("OCX注册失败!");
            FreeLibrary(hLib);
            return;
        };
        //MessageBox(Handle,"注册成功!","Reg",MB_OK);
        MessageBox("OCX注册成功!");
    }
    else
        MessageBox("OCX注册失败!");
        //MessageBox(Handle,"调用DllRegisterServer失败!","失败ing..",MB_OK);

}

卸载控件

BOOL CYourClass::UnRegistOcx()

{

    HINSTANCE hLib = LoadLibrary("NTGraph.ocx");          //指定要注册的ocx文件的路径及文件名。
    if (hLib==NULL)
    {
        //MessageBox(Handle,"不能载入Dll文件!","失败ing..",MB_OK);
        MessageBox("不能载入OCX文件!");
        return;
    }

    //获取注册函数DllRegisterServer地址
    FARPROC lpDllEntryPoint;
    lpDllEntryPoint = GetProcAddress(hLib,"DllUnregisterServer");//注意这里是DllUnregisterServer。

    //调用注册函数DllRegisterServer
    if(lpDllEntryPoint!=NULL)
    {
        if(((*lpDllEntryPoint)()))
        {
            //MessageBox(Handle,"调用DllUnRegisterServer失败!","失败ing..",MB_OK);
            MessageBox("调用DllUnRegisterServer失败!!!");
            FreeLibrary(hLib);
            return;
        };
        //MessageBox(Handle,"注销成功!","Unreg",MB_OK);
        MessageBox("OCX注销成功!");
    }
    else
    //MessageBox(Handle,"调用DllUnRegisterServer失败!!!","结果",MB_OK);
        MessageBox("OCX调用DllUnRegisterServer失败!!!");

}

判断是否注册  

BOOL CYourClass::IsRegistOcx()

{
    HKEY hKey;    
    BOOL bPresent;    
    TCHAR szPath[_MAX_PATH];    
    DWORD dwRegType;    
    DWORD cbData   =   sizeof   szPath   *   sizeof   TCHAR;    

    if(RegOpenKeyEx(HKEY_CLASSES_ROOT,"ActiveX.ActiveXControl\\Clsid",0,KEY_READ,&hKey)!=ERROR_SUCCESS)
        return false;
    else
        return true;
  //ActiveX.ActiveXControl为控件的名称和内部名称   如"NTGRAPH.NTGraphCtrl.1\\CLSID"

}


相关:VC++ 注册与卸载OCX控件的小工具源程序

下载:
1. http://www.uudisc.com/user/looooooooong/file/3913386
2. http://www.codefans.net/soft/8071.shtml

(#)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ActiveX 控件注册的几种方法
vc如何动态注册控件
VB运行时动态注册添加控件的方法
在程序运行时自动注册ActiveX控件
如何手工卸载和安装NTKO OFFICE文档控件
详解两种C#自动实现DLL(OCX)控件注册的方法 - 51CTO.COM
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服