zoukankan      html  css  js  c++  java
  • C++ 读写注册表

    #ifndef WIN32_LEAN_AND_MEAN
    #define WIN32_LEAN_AND_MEAN
    #endif
    
    #include <windows.h>
    #include <iostream>
    using std::cout; using std::endl;
    
    HKEY OpenKey(HKEY hRootKey, wchar_t* strKey)
    {
        HKEY hKey;
        LONG nError = RegOpenKeyEx(hRootKey, strKey, NULL, KEY_ALL_ACCESS, &hKey);
    
        if (nError==ERROR_FILE_NOT_FOUND)
        {
            cout << "Creating registry key: " << strKey << endl;
            nError = RegCreateKeyEx(hRootKey, strKey, NULL, NULL, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL, &hKey, NULL);
        }
    
        if (nError)
            cout << "Error: " << nError << " Could not find or create " << strKey << endl;
    
        return hKey;
    }
    
    void SetVal(HKEY hKey, LPCTSTR lpValue, DWORD data)
    {
        LONG nError = RegSetValueEx(hKey, lpValue, NULL, REG_DWORD, (LPBYTE)&data, sizeof(DWORD));
    
        if (nError)
            cout << "Error: " << nError << " Could not set registry value: " << (char*)lpValue << endl;
    }
    
    DWORD GetVal(HKEY hKey, LPCTSTR lpValue)
    {
        DWORD data;        DWORD size = sizeof(data);    DWORD type = REG_DWORD;
        LONG nError = RegQueryValueEx(hKey, lpValue, NULL, &type, (LPBYTE)&data, &size);
    
        if (nError==ERROR_FILE_NOT_FOUND)
            data = 0; // The value will be created and set to data next time SetVal() is called.
        else if (nError)
            cout << "Error: " << nError << " Could not get registry value " << (char*)lpValue << endl;
    
        return data;
    }
    
    int main()
    {
        static DWORD v1, v2;
    
        HKEY hKey = OpenKey(HKEY_LOCAL_MACHINE,L"SOFTWARE\MyCompany");
    
        v1 = GetVal(hKey, L"Value1");
        v2 = GetVal(hKey, L"Value2");
    
        v1 += 5;
        v2 += 2;
    
        SetVal(hKey, L"Value1", v1);
        SetVal(hKey, L"Value2", v2);
    
        RegCloseKey(hKey);
    
        return 0;
    }

    CopyFrom: http://www.cplusplus.com/forum/windows/58636/

  • 相关阅读:
    CCS过渡和动画
    使用Vue.prototype在vue中注册和使用全局变量
    vuex的使用
    Vue组件懒加载
    JavaScript 箭头函数(Lambda表达式)
    JS命名规范
    css命名规范
    vertical-align和line-height的理解及实例
    </2017><2018>
    给当当同学的random data
  • 原文地址:https://www.cnblogs.com/albertofwb/p/6188770.html
Copyright © 2011-2022 走看看