VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 296|回复: 6

[已解决]写入多行字符串到注册表 REG_MULTI_SZ的问题

[复制链接]
33_avatar_middle
最佳答案
0 
donate_vip 发表于 2021-7-26 21:09:58 | 显示全部楼层 |阅读模式
注册表类型是  REG_MULTI_SZ
想把  “admin"  和 “admin123” 写入  

::RegSetValueEx(hKey, "DependOnService", 0, REG_MULTI_SZ, (unsigned char*)str, nSum);


写入多行字符串到注册表 REG_MULTI_SZ的问题
最佳答案
31_avatar_small
2021-7-26 22:42:13
很简单的东西,我就不多啰嗦!
  1. HKEY hk;
  2.         CString szSubKey = _T("SOFTWARE");
  3.         if (RegOpenKeyEx(HKEY_CURRENT_USER, szSubKey, REG_OPTION_OPEN_LINK, KEY_ALL_ACCESS, &hk) != ERROR_SUCCESS)
  4.         {
  5.                 AfxMessageBox(_T("打开注册表失败"));
  6.                 return;
  7.         }

  8.         CString szItemName = _T("DependOnService");
  9.         TCHAR szItemValue[] = _T("admin\r\nadmin123");
  10.         if (RegSetValueEx(hk, szItemName, 0, REG_MULTI_SZ, (BYTE*)szItemValue, sizeof(szItemValue)) != ERROR_SUCCESS)
  11.         {
  12.                 AfxMessageBox(_T("写入注册表失败"));
  13.                 RegCloseKey(hk);
  14.                 return;
  15.         }
  16.         RegFlushKey(hk);
  17.         RegCloseKey(hk);
复制代码

写入多行字符串到注册表 REG_MULTI_SZ的问题




上一篇:mfc调用外部exe程序问题
下一篇:CreateFile 想要实现 fopen 的 "a+" 操作怎样设置标志位?
31_avatar_middle
最佳答案
49 
在线会员 发表于 2021-7-26 22:42:13 | 显示全部楼层    本楼为最佳答案   
bestAnswer
很简单的东西,我就不多啰嗦!
  1. HKEY hk;
  2.         CString szSubKey = _T("SOFTWARE");
  3.         if (RegOpenKeyEx(HKEY_CURRENT_USER, szSubKey, REG_OPTION_OPEN_LINK, KEY_ALL_ACCESS, &hk) != ERROR_SUCCESS)
  4.         {
  5.                 AfxMessageBox(_T("打开注册表失败"));
  6.                 return;
  7.         }

  8.         CString szItemName = _T("DependOnService");
  9.         TCHAR szItemValue[] = _T("admin\r\nadmin123");
  10.         if (RegSetValueEx(hk, szItemName, 0, REG_MULTI_SZ, (BYTE*)szItemValue, sizeof(szItemValue)) != ERROR_SUCCESS)
  11.         {
  12.                 AfxMessageBox(_T("写入注册表失败"));
  13.                 RegCloseKey(hk);
  14.                 return;
  15.         }
  16.         RegFlushKey(hk);
  17.         RegCloseKey(hk);
复制代码

写入多行字符串到注册表 REG_MULTI_SZ的问题
33_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-26 21:11:04 | 显示全部楼层
怎么写入多行到注册表?
33_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-27 03:30:05 | 显示全部楼层
cpp2019 发表于 2021-7-26 22:42
很简单的东西,我就不多啰嗦!

你这改的结果是这样的 写入多行字符串到注册表 REG_MULTI_SZ的问题 写入多行字符串到注册表 REG_MULTI_SZ的问题    ,               -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------我想要的结果是 写入多行字符串到注册表 REG_MULTI_SZ的问题 写入多行字符串到注册表 REG_MULTI_SZ的问题    写入多行字符串到注册表 REG_MULTI_SZ的问题
70_avatar_middle
最佳答案
49 
在线会员 发表于 2021-7-27 09:12:16 | 显示全部楼层
REG_MULTI_SZ 多个字符串,用\0分隔,例如:String1\0String2\0String3\0LastString\0\0

  1.     char writeData[] = { "str1\0str2\0str3\0\0" };
  2.     DWORD cbWriteData = sizeof(writeData);
  3.     lRtn = RegSetValueEx(hKey, "keys", 0, REG_MULTI_SZ, (BYTE*)writeData, cbWriteData);
复制代码
33_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-7-27 10:34:10 | 显示全部楼层
tony666 发表于 2021-7-27 09:12
REG_MULTI_SZ 多个字符串,用\0分隔,例如:String1\0String2\0String3\0LastString\0\0

这样字符连在一起了,成了一排数据,我需要的是二排数据,  我的需求是相当于手动回车那个效果一样
31_avatar_middle
最佳答案
49 
在线会员 发表于 2021-7-27 13:39:27 | 显示全部楼层
李小海 发表于 2021-7-27 10:34
这样字符连在一起了,成了一排数据,我需要的是二排数据,  我的需求是相当于手动回车那个效果一样

\r\n就是回车,\0也可以换行的,不过不是回车符。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-10-23 15:05

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表