用C语言实现修改注册表

用C语言实现修改注册表,第1张

void

WriteReg()

{

//test1:在根结点上创建子键档蚂

CString

strSubKey=

"MySubKey"

HKEY

hkey1,

hkey2

long

lrt,

lRtVal

DWORD

dwdisposition=

REG_CREATED_NEW_KEY

if(

ERROR_SUCCESS

==

RegCreateKeyEx(

HKEY_CURRENT_USER,

strSubKey,

0,

NULL,

0,

KEY_CREATE_SUB_KEY

|

KEY_SET_VALUE,

NULL,

&hkey1,

&dwdisposition

)

)

//注:KEY_CREATE_SUB_KEY

|

KEY_SET_VALUE标志分别用于后面创建子键,后创建键值项,

{

//test2:在刚创建的子键(MySubKey)下再创建子键(

MySubSubKey)

lrt

=

RegCreateKeyEx(

hkey1,

"MySubSubKey",

0,

NULL,

0,

KEY_CREATE_SUB_KEY

|

KEY_SET_VALUE,

NULL,

&hkey2,

&dwdisposition

)

//test3:在第一步创建的子键MySubKey下增加键值项

CString

strValue="value

of

the

MySubKey's

valueItem"

lRtVal=

RegSetValueEx(

hkey1,

"valItem1",

0,

REG_SZ,

(const

byte

*)(LPCTSTR)strValue

,

strValue.GetLength()

+

1

)

//test4:在MySubSubKey下创建键值项

if(

lrt

==

ERROR_SUCCESS

)

{

strValue="value

of

the

MySubSubKey's

valueItem"

lRtVal=

RegSetValueEx(

hkey2,

"valItem1",

0,

REG_SZ,

(const

byte

*)(LPCTSTR)strValue

,

strValue.GetLength()

+

1

)

}

}

}

二,读注册表,

函数正蠢绝:RegOpenKeyEx,

RegQueryValueEx

void

ReadReg()

{

//test1,读取MySubSubKey下的valItem1值

CString

strSubkey=

"MySubKey\\MySubSubKey"

HKEY

hKey

char

szValue[100]={0}

if(

ERROR_SUCCESS

==

RegOpenKeyEx(

HKEY_CURRENT_USER,

strSubkey,

0,

KEY_QUERY_VALUE,

&hKey

)

)

{

DWORD

dwType=

REG_SZ

unsigned

long

nSize=

sizeof(szValue)

-

1

if(

ERROR_SUCCESS

==

RegQueryValueEx(

hKey,

"valItem1",

NULL,

&dwType,

(byte

*)szValue,

&nSize

)

)

{

int

a=0

}

}

}

读写注册表要注意访问标志,常用的有:

1,可增加子键:

KEY_CREATE_SUB_EY

2.

可增举姿加键值项:KEY_SET_VALUE

3.可查询键值项:KEY_QUERY_VALUE

1.包含windows.h头文件 2.用API *** 作 注郑正册表API使用法查看MSDN,或网上搜一下;我参考了这里的 http://www.cnblogs.com/ahuo/archive/2007/09/05/883250.html 例: #include<windows.h>#include<stdio.h> main() { HKEY m_hkeyDWORD dwDisposition long ret0=(RegCreateKeyEx (HKEY_CURRENT_USER,L"REGD\\",0,NULL, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&m_hkey,&dwDisposition)) if(ret0!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行 { MessageBox(NULL,L"错误: 无法打开有关的hKEY!",L"Tips"棚仿,MB_OK|MB_ICONINFORMATION) return } if(dwDisposition==REG_OPENED_EXISTING_KEY) MessageBox(NULL,L"打开了一个已经存在的键",L"Tips",MB_OK|MB_ICONINFORMATION) else { if(dwDisposition==REG_CREATED_NEW_KEY) MessageBox(NULL,L"建立了一个新键",L"Tips",MB_OK|MB_ICONINFORMATION) } RegCloseKey(m_hkey)}

记得采纳喊和悔啊


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12570028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存