首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegSetValueEx与RRF_RT_REG_SZ在注册表中生成REG_EXPAND_SZ?

RegSetValueEx与RRF_RT_REG_SZ在注册表中生成REG_EXPAND_SZ?
EN

Stack Overflow用户
提问于 2016-06-27 04:52:39
回答 1查看 661关注 0票数 1

标题说明了一切,当我尝试使用RegSetValueEx来创建一个REG_SZ大小条目时,当我查看注册表时,就会得到一个REG_EXPAND_SZ

这是我正在使用的代码

代码语言:javascript
复制
const char REG_KEY_PATH[] = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
const char REG_VALUE_NAME[] = "Scroff";

// Get where the app lives
char appLoc[MAX_PATH];
GetModuleFileNameA(NULL, appLoc, MAX_PATH);

// Create the key value
HKEY regKey = 0;
RegCreateKeyExA(HKEY_LOCAL_MACHINE, REG_KEY_PATH, 0, NULL, 
                REG_OPTION_NON_VOLATILE, KEY_READ | KEY_WRITE | KEY_WOW64_64KEY, 
                NULL, &regKey, NULL);

RegSetValueExA(regKey, REG_VALUE_NAME, 0, RRF_RT_REG_SZ, (unsigned char*)appLoc, strlen(appLoc));

代码可以工作,但是不是具有REG_SZ类型的注册表,而是REG_EXPAND_SZ。为什么会这样,我该怎么解决呢?

我在Windows 10上运行,使用VS 2015 Enterprise。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-27 05:27:57

您需要传递REG_SZ标志作为RegSetValueEx()的第四个参数来创建REG_SZ值。RRF_RT_XXX标志仅在RegGetValue()中有效。

您的代码正在创建一个REG_EXPAND_SZ值,因为RRF_RT_REG_SZ标志的值为2,这恰好与REG_EXPAND_SZ标志的值相同。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38046152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档