windows VC对注册表项值的增,删,查,改,以及对注册表子项的增加和删除

本文介绍了一个使用C++进行注册表操作的示例,包括读取、删除、修改和增加注册表项,以及创建和删除注册表子项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <Windows.h>
#include <Shlwapi.h>
using namespace std;
#pragma comment(lib,"Shlwapi.lib")
void regedit(LPCTSTR path);

int main()
{
    regedit(L"Software\\Valve\\Steam");

    getchar();
    return 0;
}
void regedit(LPCTSTR path)
{
    HKEY hkey;
    LONG lRet = RegOpenKeyEx(HKEY_CURRENT_USER, path, 0, KEY_ALL_ACCESS, &hkey);
    if (ERROR_SUCCESS != lRet)cout<<"RegOpenKeyEx fail!"<<endl;

    //获取注册表项值
    wchar_t getbuffer[100];
    DWORD dwsize = 100;
    lRet = RegGetValue(hkey, NULL, L"SteamExe", RRF_RT_REG_SZ, NULL, (LPDWORD)getbuffer, &dwsize);
    if (ERROR_SUCCESS != lRet)cout<<"RegGetValue fail!"<<endl;
    wcout<<getbuffer<<endl;

    //删除注册表项
    lRet =RegDeleteValue(hkey,L"Language");
    if (ERROR_SUCCESS != lRet)cout<<"RegDeleteValue fail!"<<endl;

    //修改和增加注册表项
    wchar_t lan[20]=L"chinese";// 修改值   //如果密钥中不存在具有此名称的值,则该函数会将其添加到密钥
    lRet = RegSetValueEx(hkey, L"Language", 0, REG_SZ, (BYTE*)lan,  dwsize);
    if (ERROR_SUCCESS != lRet)cout<<"RegSetValueEx fail!"<<endl;

    //注册表删除子项,此处删除ActiveProcess
    SHDeleteKey(HKEY_CURRENT_USER,L"Software\\Valve\\Steam\\ActiveProcess");

    //添加注册表子项,此处添加ActiveProcess
    HKEY hke = NULL;
    DWORD dw;
    lRet = RegCreateKeyExA(HKEY_CURRENT_USER,"Software\\Valve\\Steam\\ActiveProcess", 0, REG_NONE,REG_OPTION_NON_VOLATILE,KEY_WRITE |KEY_READ,NULL,&hke,&dw);
    if (ERROR_SUCCESS != lRet)cout<<"RegCreateKeyExA fail!"<<endl;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值