vc mfc修改Internet选项

本文介绍了如何使用VC++通过修改注册表来实现Windows系统中Internet选项的TLS协议版本设置。具体步骤包括查找相关注册表键值、导出原始值、手动更改设置并再次导出,然后通过对比找出关键差异。代码示例展示了如何利用VC++的API函数读写注册表,以改变`SecureProtocols`值,从而启用TLS1.0、1.1和1.2。
摘要由CSDN通过智能技术生成

使用vc mfc做window开发,涉及网络http之类的,程序可能会要求修改本机一些Internet选项,可通过修改注册表的形式来达到目的。

比如说要修改高级中的“使用TLS1.0”、“使用TLS1.1”、“使用TLS1.2”
在这里插入图片描述
当前默认未勾选,我们可以先打开注册表(win+r输入regedgit),找到路径\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings,然后右键导出为reg。然后再回到Internet选项勾选上上面三个选项,然后重新导出reg。
在这里插入图片描述
在这里插入图片描述
通过对比工具,可以发现两份reg文件中,主要区别在于SecureProtocols的值。因此,我们可以通过vc代码来修改这个值,以达到我们的目的。

	HKEY hKey;
	CString subkey = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings");
	if (RegOpenKeyEx(HKEY_CURRENT_USER, subkey, 0, KEY_ALL_ACCESS, &hKey)){
		AfxMessageBox(_T("打开注册表失败!"));
		return;
	}

	CString itemname = _T("SecureProtocols");
	DWORD val = 2728;
	if (RegSetValueEx(hKey, itemname, 0, REG_DWORD, (BYTE*)&val, sizeof(DWORD))){
		AfxMessageBox(_T("修改注册表失败!"));
		return;
	}
	RegFlushKey(hKey);

	DWORD dwType = REG_DWORD;
	DWORD dwSize = sizeof(DWORD);
	DWORD data;
	if (RegQueryValueEx(hKey, itemname, NULL, &dwType, (LPBYTE)&data, &dwSize)){
		AfxMessageBox(_T("获取注册表失败!"));
		RegCloseKey(hKey);
		return;
	}else{
		RegCloseKey(hKey);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值