zoukankan      html  css  js  c++  java
  • VC access regedit

    #define PATH "HKEY_LOCAL_MACHINE\\Software\\..."

    HKEY hk;
    if(RegOpenKey(
       HKEY_LOCAL_MACHINE,
       PATH,
      //0,
      //KEY_ALL_ACCESS =>KEY_QUERY_VALUE,
      &hk) != ERROR_SUCCESS)
    {
        return FALSE;
    }

    DWORD dwType = 0;
    unsigned char szBuff[1024];
    DWORD dwBuffLength = sizeof(szBuff);

    if (RegQueryValueEx(hk, "InstallPath", 0, &dwType, szBuff, &dwBuffLength) != ERROR_SUCCESS)
    {
    return FALSE;
    }

    if(dwType != REG_SZ)
    {
    return FALSE;
    }

    return TRUE;

    使用记录:
    1)以前RegOpenKeyEx没有试成功,原来是要用KEY_QUERY_VALUE,而不能用KEY_ALL_ACCESS
    2)当dwBuffLength传入比获得的字符串长度小的值时,会失败。所以建议传大一些的值,调用后它会将该变量重新设为获得的字符串长度。


    -----------------------------------
    下面是从wix的wcalog.cpp中的一段:
    static BOOL IsVerboseLogging()
    {
        static int iVerbose = -1;

        if (0 > iVerbose)
        {
            iVerbose = WcaIsPropertySet("LOGVERBOSE");
            if (0 == iVerbose) // if the property wasn't set, check the registry to see if the logging policy was turned on
            {
                HKEY hkey = NULL;
                WCHAR rgwc[16] = { 0 };
                DWORD cb = sizeof(rgwc);
                if (ERROR_SUCCESS == ::RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Policies\\Microsoft\\Windows\\Installer", 0, KEY_QUERY_VALUE, &hkey))
                {
                    if (ERROR_SUCCESS == ::RegQueryValueExW(hkey, L"Logging", 0, NULL, reinterpret_cast<BYTE*>(rgwc), &cb))
                    {
                        for (LPCWSTR pwc = rgwc; (cb / sizeof(WCHAR)) > static_cast<DWORD>(pwc - rgwc) && *pwc; pwc++)
                        {
                            if (L'v' == *pwc || L'V' == *pwc)
                            {
                                iVerbose = 1;
                                break;
                            }
                        }
                    }

                    ::RegCloseKey(hkey);
                }
            }
        }

        Assert(iVerbose >= 0);
        return (BOOL)iVerbose;
    }


  • 相关阅读:
    xls与csv文件的区别
    青音,经典爱情语录
    win7用户账户自动登录方法汇总
    How to using Procedure found Lead Blocker
    FTS(3) BSD 库函数手册 遍历文件夹(二)
    FTS(3) BSD 库函数手册 遍历文件夹(一)
    DisplayMetrics类 获取手机显示屏的基本信息 包括尺寸、密度、字体缩放等信息
    About App Distribution 关于应用发布
    FTS(3) 遍历文件夹实例
    OpenCV 2.1.0 with Visual Studio 2008
  • 原文地址:https://www.cnblogs.com/huqingyu/p/193433.html
Copyright © 2011-2022 走看看