c语言注册表函数 c++写注册表

c语言修改注册表

给你一个参考,

成都创新互联长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为芜湖企业提供专业的网站制作、网站建设芜湖网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

这个是往注册表的开机启动项里添加开机启动的,(比如qq),只给你主要代码。这个你可以百度,注册表操作函数就那些,百度下,再看下msdn就会了》》

hkey

hkey;

tchar

childkey[256]=text("software\\microsoft\\windows\\currentversion\\run");

tchar

keyvalue[256]=text("c:\\program

files\\tencent\\qq\\bin\\qq.exe");

tchar

keyname[256]="qq";

if(error_success!=regopenkeyex(hkey_local_machine,childkey,0,key_create_sub_key,hkey))

{

messagebox(null,text("failed

to

open

the

key

..."),text("failed!!!"),mb_ok);

}

if(error_success==regsetvalue(hkey_local_machine,childkey,reg_sz,keyvalue,strlen(keyvalue)))

{

messagebox(null,text("sucess

to

write

a

value

into

the

currentversion

.

"),text("sucess!!!"),mb_ok);

}

regclosekey(hkey);

希望对您有所帮助........

c语言api注册表函数

RegSetValueEx(Heky,"……",0,REG_SZ,(CONST BYTE*)message,sizeof(message));

//修改如上;

用C语言实现修改注册表

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

C语言中的注册表操作函数有哪些?

要调用Windows API的RegOpenKeyEx(), RegSetValueEx(), RegSetValueEx()等函数。首先要确认你的C编译器支持调用Windows API.

举例:

要自动运行"D:\Myprog\MyProgram.exe", 修改注册表,在

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

中加一项:

RunMyProg="D:\Myprog\MyProgram.exe"

#include windows.h

static char subkey[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";

static char vname[] = "RunMyProg";

static char exefile[] = "D:\\Myprog\\MyProgram.exe";

ULONG dType = REG_SZ, len = 0;

HKEY hKey;

RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey,0,KEY_SET_VALUE|KEY_QUERY_VALUE,hKey);//打开。

if (RegQueryValueEx(hKey, vname, 0, dType, NULL, len)) { //如果没有RunMyProg,

RegSetValueEx(hKey, vname, 0, REG_SZ, exefile, strlen(exefile)+1); //就加上。

}

RegCloseKey(hKey); //关闭。

C语言如何修改注册表(函数请解释清楚)

要对注册表编程,可以。

要用C对注册表编程,可以。

注册表是 Windows 平台下的东西,要使用 Windows 平台下提供的 API 才是正道,

不是有人用楼主的方法实现了么?

—— 这不是不行,而是为什么 Windows 下那么容易实现的东西,非要搬个 DOS 出来?

这不是一种技术停滞的表现么?DOS平台现今已经被放弃,在DOS下学习一门语言是不错的,因为它没 Windows 那么复杂,若用 Windows 的话很多人在一开始就可能不适应,几千个 API 也是妨碍初学者进步的一个主要因素,对于语言而言是不必要的,所以,学习语言在 DOS 是容易的,而——开发总得针对平台,Windows 的东西让它归 Windows,DOS 下的东西归 DOS,平台不同使用的库也不同,没必要抱着旧的不放,编程就要贪新厌旧,旧的当然要经历过才知道什么叫新的。

也就是调用Windows平台下提供的API一般都用VC


网站标题:c语言注册表函数 c++写注册表
文章起源:http://csdahua.cn/article/hgispd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流