// wRegKey
class wRegKey
{
// Operations
public:
BOOL Create(HKEY hKeyParent, LPCTSTR lpszKeyName
, LPTSTR lpszClass = REG_NONE
, DWORD dwOptions = REG_OPTION_NON_VOLATILE
, REGSAM samDesired = KEY_ALL_ACCESS
, LPSECURITY_ATTRIBUTES lpSecAttr = NULL
, LPDWORD lpdwDisposition = NULL);
LONG Open(HKEY hKeyParent, LPCTSTR lpszKeyName, REGSAM samDesired = KEY_ALL_ACCESS);
void CloseKey();
public:
DWORD QueryValue(LPCTSTR lpszValueName, DWORD dwDefaultValue);
chString QueryValue(LPCTSTR lpszValueName, LPTSTR szDefaultValue);
BOOL SetValue(LPCTSTR lpszValueName, DWORD dwValue);
BOOL SetValue(LPCTSTR lpszValueName, LPCTSTR lpszValue);
BOOL DeleteValue(LPCTSTR lpszValueName);
BOOL DeleteSubKey(LPCTSTR lpszSubKeyName);
public:
// static
static BOOL SetKeyValue(HKEY hKeyParent, LPCTSTR lpszKeyName, LPCTSTR lpszValueName, LPCTSTR lpszDefaultValue);
static BOOL SetKeyValue(HKEY hKeyParent, LPCTSTR lpszKeyName, LPCTSTR lpszValueName, DWORD dwDefaultValue);
static BOOL DeleteKey(HKEY hKeyParent, LPCTSTR lpszKeyName);
static BOOL IsKeyExist(HKEY hKeyParent, LPCTSTR lpszKeyName);
static BOOL IsValueExist(HKEY hKeyParent, LPCTSTR lpszKeyName, LPCTSTR lpszValueName);
protected:
operator HKEY() const;
HKEY Detach();
void Attach(HKEY hKey);
public:
wRegKey();
wRegKey(LPCTSTR strKeyName, HKEY hParentKey = HKEY_LOCAL_MACHINE);
~wRegKey();
private:
// Attributes
HKEY m_hKey;
};

wRegKey key;
/*if(!key.Create(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Multimedia\\Sound Mapper")))
{
return FALSE;
}*/
//找到系统的启动项
LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";

//打开启动项Key
HKEY hKey;
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);
bool isExist = key.Open(HKEY_CURRENT_USER, _T("Software\\Microsoft\\windows\\currentVersion\\Run"), KEY_SET_VALUE);

if (!key.DeleteValue("YodaoDict"))
{
return FALSE;
}
char pFileName[100] = {0};

//得到程序自身的全路径
DWORD dwRet = GetModuleFileName(NULL, pFileName, 100);
RegSetValueEx(hKey, "yecy", 0, REG_SZ, (const unsigned char*)(LPCTSTR)pFileName, dwRet);

/*wRegKey key;
if(!key.Create(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\Control\\MediaResources\\SetupPreferredAudioDevices")))
{
return FALSE;
}
if(!textEMPTY("555555") && !key.SetValue(_T("Playback"), "333"))
{
return FALSE;
}*/
/*if(!textEMPTY("8888") && !key.SetValue(_T("Record"), "8888"))
{
return FALSE;
}*/
//key.CloseKey();
////wRegKey key;
//wRegKey openkey;
//if(!openkey.Open(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\Control\\MediaResources\\SetupPreferredAudioDevices"), KEY_QUERY_VALUE))
//{
// return FALSE;
//}
//
//UINT uCount = openkey.QueryValue(_T("Playback"), (DWORD)0);
//openkey.CloseKey();
//
//bool isExist = openkey.IsKeyExist(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet");

//if(!openkey.Create(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Multimedia\\Sound Mapper")))
//{
// return FALSE;
//}

验证reg注册表的操作的更多相关文章

  1. 自己动手写reg注册表文件

    自己动手写reg注册表文件 2015-01-12 20:23 1161人阅读 评论(1) 收藏 举报  分类: 玩转Windows应用层编程(12)  版权声明:本文为博主原创文章,未经博主允许不得转 ...

  2. Windows 注册表常用操作

    1 添加一个主键(比如在HKEY_LOCAL_MACHINE\SOFTWARE\中添加一个ABCEDFGHIJKLMN主键) Windows Registry Editor Version 5.00 ...

  3. C#对注册表的操作

    C#中提供的与注册表相关的最主要的是两个类: Registry 和 RegistryKey,这两个类属于Microsoft.Win32命名空间 Registry类包含5个公共的静态域,分别代表5个基本 ...

  4. windows下注册表的操作

    原博:https://blog.csdn.net/denghubu/article/details/5765921 1.       注册表简介 注册表是为Windows NT和Windows95中所 ...

  5. 一款基于jQuery的带Tooltip表单验证的注册表单

    今天给大家分享一款基于jQuery的注册表单,这款注册表单的特点是确认提交注册信息时,表单会自动验证所填写的信息,如果信息填写有误,即会在相应的字段内以Tooltip提示框的形式显示错误信息.这款jQ ...

  6. C++Builder中注册表的操作

    僮骶头浅5募虻チ耍旅嫖揖鸵砸桓鍪道此得鱐Registry类的用法.首先,先介绍一下TRegistry的属性和方法:TRegistry类一共有四个属性.属性 类型 描述CurrentKey int ...

  7. C#注册表常用操作

    1:加键 改值 Microsoft.Win32.RegistryKey Key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey( @" ...

  8. Tooltip表单验证的注册表单

    在线演示 本地下载

  9. delphi 注册表操作(读取、添加、删除、修改)完全手册

    DELPHI VS PASCAL(87)  32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操 ...

随机推荐

  1. 云中应用性能管理(APM)的下一步

    Michael Kopp是Compu-ware公司卓越APM中心的一名技术分析师,他做过10多年的Java/JEE领域的设计师和开发员.另外,Kopp还专攻虚拟和云的大规模生产部署的结构和性能. ? ...

  2. DMP

    1.dmp-data mabagement platform数据管理平台 数据赋能,营销智变 2.定义 把分散的第一,第三方异构.多源数据进行整合,然后纳入统一技术平台中,并对这些数据进行标准化和细分 ...

  3. JSP HTTP 状态码

    JSP HTTP 状态码 HTTP请求与HTTP响应的格式相近,都有着如下结构: 以状态行+CRLF(回车换行)开始 零行或多行头模块+CRLF 一个空行,比如CRLF 可选的消息体比如文件,查询数据 ...

  4. wordcloud使用

    学了下怎么用wordcloud. 以imet的数据集为例 https://www.kaggle.com/c/imet-2019-fgvc6 读取“train.csv”,”label.csv”文件,得到 ...

  5. CSS3 --添加阴影(盒子阴影、文本阴影的使用)

     CSS3 - 给div或者文字添加阴影(盒子阴影.文本阴影的使用)CSS3定义了两种阴影:盒子阴影和文本阴影.其中盒子阴影需要IE9及其更新版本,而文本阴影需要IE10及其更新版本.下面分别介绍两种 ...

  6. GCD多线程在swift中的变化

    1.异步线程加载主线程刷新 DispatchQueue.global().async { // TODO:执行异步线程网络请求 DispatchQueue.main.async(execute: { ...

  7. polynomial time

    https://en.wikipedia.org/wiki/Time_complexity#Polynomial_time An algorithm is said to be of polynomi ...

  8. 【python】-- 类的多继承、经典类、新式类

    继承知识点补充 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类. 一.多继承 之前我们都是讲的单继承,那么什么是多继承呢?说白了 ...

  9. cocos2dx使用cocostudio导出的scene

    local uilocal function createLayerUI() if not ui then ui=cc.Layer:create(); createLayerUI=nil; end r ...

  10. [note]高精度模板

    高精度模板 先定义一个struct struct gj{ int l,s[N]; bool fh; void Print(){ if(fh)putchar('-'); for(int i=l;i> ...