windows注册表修改(c++)

打开一个键的函数:

RegOpenKeyEx

函数定义:LONG RegOpenKeyEx(HKEY hKey,//已经打开的键的句柄,或者直接是上述几个根键

                              LPCTSTR lpSubKey,//要打开的子键名字的地址

                              DWORD Reserved,//保留未使用

                              LPCTSTR IpClass,//指向一个类名,一般设置为0

                              DWORD ulOptions,//创建子健选项,REG_OPTION_NON_VOLATILE表示重启后保存设置.\

                                                                   REG_OPTION_VOLATILE表示重启后不保存设置.

                              REGSAM samDesired,//打开方式,如读还是写

                              LPSECURITY_ATTRIBUTES IpSecurityAttributes,//指定句柄的继承性

                              PHKEY phkResult//返回的打开的子键的句柄

                              LPDWORD IpdwDispositiom//指定子健不存在时是否创建子键

                               );

  返回ERROR_SUCCESS表示调用成功

 

设置一个键值RegSetValueEx

    函数定义:LONG RegSetValueEx(HKEY hKey,//要设置的键的句柄

                                 LPCTSTR lpValueName,//要访问的键值的名称

                                 LPDWORD lpReserved,//保留值

                                 DWORD dwType,//要设置的数据的类型

                                 const BYTE *lpData,//要设置的健值

                                 DWORD cbData//数据的长度

                                );

 

简单的修改代码实例:

#include<iostream>
#include<windows.h>
using namespace std;
;
void CreateReg(HKEY Root,char*szSubKey,char* ValueName,char* Data)  //修改字符串键值
{
	HKEY key;
	long Ret=RegCreateKeyEx(Root,szSubKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&key,NULL);
    Ret=RegSetValueEx(key,ValueName,0,REG_SZ,(BYTE*)Data,strlen(Data));
	if(Ret!=ERROR_SUCCESS)
	{	cout<<"失败!"<<endl;
	}
	RegCloseKey(key);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
}
int main()
{
	char url[255]="https://www.baidu.com";   //想要修改的网址
	CreateReg(HKEY_CURRENT_USER,"Software\\Microsoft\\Internet Explorer\\Main","Start Page",url);
	return 0;
}

注:头文件“windows.h”必须引用,否则HKEY类无法使用。

 

防止注册表修改的方法(window10)

1.打开本地安全策略->本地策略->安全选项

 网络访问: 可远程访问的注册表路径和子路径 ,将其中的键值去除。

 

2..打开本地安全策略->高级审核策略配置->全局对象访问审核

 

注:这2种方法均对我本地执行的注册表修改无效,不知道是不是我的哪个设置不对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值