C/C++ 操作注册表

#include
#include
#pragma comment(lib, "advapi32.lib" )


int main(int argc, char *argv[])
{    
     HKEY hKey;                                    //要查询的键的句柄
     TCHAR *keyName;
     
     DWORD dwValue = 0;                            //键值对,存放对应的REG_DWORD值
     TCHAR szLocation[MAX_PATH] = {0};   //键值对,存放对应的REG_SZ   值
     
    DWORD dwSize = 0;
    DWORD dwType;                                    //要查询的键值的类型
    LPCTSTR studioPath = TEXT("System\\CurrentControlSet\\Control\\Print");    
    LONG ret;
    ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, studioPath, 0, KEY_READ | KEY_WRITE, &hKey);     //打开注册表

    if (ERROR_SUCCESS == ret)
    {
        dwType = REG_DWORD;
        dwSize = sizeof(DWORD);
        keyName = TEXT("JIA_HOME");
        ret = RegQueryValueEx(hKey, keyName, 0,  &dwType, (PBYTE)&dwValue, &dwSize);            //查询 JIA_HOME 名称
        if (ERROR_SUCCESS == ret)
        {
            cout<<"keyName1查询结果:"<         }
       
        dwType = REG_SZ;
        dwSize = sizeof(szLocation);                                                        
        keyName = TEXT("Read_REG_SZ");  
        ret = RegQueryValueEx(hKey, keyName, 0, &dwType, (PBYTE)&szLocation, &dwSize);            //查询 Read_REG_SZ 名称
        if (ERROR_SUCCESS == ret)
        {
            cout<<"keyName2查询结果:"<         }
        
 
    
        //*************写REG_DWORD值 RpcAuthnLevelPrivacyEnabled***********************
        TCHAR *newKey = TEXT("RpcAuthnLevelPrivacyEnabled");              //要添加的键值的名称
        DWORD dwData = 0;                                                                            //要添加的键值
        ret = RegSetValueEx(hKey, newKey, 0, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD));        //设置
        if (ERROR_SUCCESS == ret)
            wprintf(L"RegSetValueEx returns %d\n", ret);
        //**********************************************************************************************
        
        //*******************************写REG_SZ值 Writenew_reg_sz_value*******************
        newKey = TEXT("Writenew_reg_sz_value");    
        TCHAR szValue[64] = TEXT("okokokok1000");
        ret = RegSetValueEx(hKey, newKey, 0, REG_SZ, (LPBYTE)szValue, 64);  //设置REG_SZ值
        if (ERROR_SUCCESS == ret)
            cout<<"RegSetValueEx returns "<         //**********************************************************************************************
        RegCloseKey(hKey);
    }          
    
    MessageBox(NULL,TEXT("测试成功!"),"MsgBox",MB_OKCANCEL|MB_SETFOREGROUND);
    return 0;
}

你可能感兴趣的:(C/C++,c语言,c++,开发语言)