zoukankan      html  css  js  c++  java
  • 【ATL】注册插件成功后自动设置浏览器允许弹出窗口注册表

    STDAPI DllInstall(BOOL bInstall, LPCWSTR pszCmdLine)
    {
    HRESULT hr = E_FAIL;
    
    static const wchar_t szUserSwitch[] = L"user";
    
    if(pszCmdLine != NULL)
    {
    if(_wcsnicmp(pszCmdLine,szUserSwitch,_countof(szUserSwitch)) == 0)
    ATL::AtlSetPerUserRegistration(true);
    }
    
    if(bInstall)
    {
    hr = DllRegisterServer();
    if(FAILED(hr))
    DllUnregisterServer();
    
    // 操作注册表(允许阻止的浏览器弹出窗口)
    HKEY hKEY;
    LPBYTE path_Get = new BYTE[256];
    DWORD type = REG_BINARY;
    DWORD dwBytes = 254;
    
    LPSTR data_set = "Software\Microsoft\Internet Explorer\New Windows\Allow";
    
    if(::RegOpenKeyExA(HKEY_CURRENT_USER,data_set,NULL,KEY_READ,&hKEY) == ERROR_SUCCESS)
    {
    if(::RegQueryValueExA(hKEY,"要设置的域名",NULL,&type,path_Get,&dwBytes) != ERROR_SUCCESS)
    {
    LPBYTE mContent = new BYTE[2];
    mContent[0] = 0x00;
    mContent[1] = 0x00;
    
    CRegKey key;
    key.Create(L"Software\Microsoft\Internet Explorer\New Windows\Allow");
    key.SetBinaryValue(L"要设置的域名",mContent,2);
    
    key.Close();
    }
    }
    
    ::RegCloseKey(hKEY);
    
    ::MessageBoxA(NULL,"您可以正常使用ActiveX插件功能","插件安装成功",MB_OK | MB_ICONINFORMATION);
    }
    else
    hr = DllUnregisterServer();
    
    return hr;
    }
    

      

  • 相关阅读:
    C++互斥器:Semaphores
    C++互斥器:Mutex
    内联函数(inline)
    C++显式转换
    线程同步控制
    拷贝构造函数——防篡改
    extern关键字
    虚析构、纯虚析构
    类的友元关系
    char 与 unsigned char的本质区别
  • 原文地址:https://www.cnblogs.com/briny/p/4654178.html
Copyright © 2011-2022 走看看