通过MFC改变注册表的值
答案:1 悬赏:50 手机版
解决时间 2021-11-12 12:42
- 提问者网友:泪痣哥哥
- 2021-11-11 12:13
通过MFC改变注册表的值
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-11-11 12:40
BOOL SetRegKey(CString strValue)
{
HKEY hNewkey;
CString strSubKey = "Software\Microsoft\Windows\Policies\Explorer\DisallowRun";
CString strName = "yang";
DWORD dwDisp;
if (ERROR_SUCCESS != RegCreateKeyEx(HKEY_CURRENT_USER, strSubKey, NULL,
NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS,
NULL, &hNewkey, &dwDisp))
{
return FALSE;
}
if(ERROR_SUCCESS != RegSetValueExA(hNewkey, strName, NULL,
REG_SZ, (const BYTE*)strValue.GetBuffer(),
strlen(strValue)))
{
RegCloseKey(hNewkey);
return FALSE;
}
RegCloseKey(hNewkey);
return TRUE;
}希望采纳!
追问第二个IF中提示strName无法从CString转换到LPCSTR类型,怎么转换呢?追答BOOL SetRegKey(CString strValue)
{
HKEY hNewkey;
CString strSubKey = "Software\Microsoft\Windows\Policies\Explorer\DisallowRun";
CString strName = "yang";
DWORD dwDisp;
if (ERROR_SUCCESS != RegCreateKeyEx(HKEY_CURRENT_USER, strSubKey, NULL,
NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS,
NULL, &hNewkey, &dwDisp))
{
return FALSE;
}
// 这里你强转下
if(ERROR_SUCCESS != RegSetValueExA(hNewkey, (LPCSTR)strName, NULL,
REG_SZ, (const BYTE*)strValue.GetBuffer(),
strlen(strValue)))
{
RegCloseKey(hNewkey);
return FALSE;
}
RegCloseKey(hNewkey);
return TRUE;
}
把你工程属性的编码设置成多字节,不要选Unicode,默认的是Unicode,你更改下
追问在哪里设置??我直接(LPCSTR)strName.GetBuffer()行不??追答
{
HKEY hNewkey;
CString strSubKey = "Software\Microsoft\Windows\Policies\Explorer\DisallowRun";
CString strName = "yang";
DWORD dwDisp;
if (ERROR_SUCCESS != RegCreateKeyEx(HKEY_CURRENT_USER, strSubKey, NULL,
NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS,
NULL, &hNewkey, &dwDisp))
{
return FALSE;
}
if(ERROR_SUCCESS != RegSetValueExA(hNewkey, strName, NULL,
REG_SZ, (const BYTE*)strValue.GetBuffer(),
strlen(strValue)))
{
RegCloseKey(hNewkey);
return FALSE;
}
RegCloseKey(hNewkey);
return TRUE;
}希望采纳!
追问第二个IF中提示strName无法从CString转换到LPCSTR类型,怎么转换呢?追答BOOL SetRegKey(CString strValue)
{
HKEY hNewkey;
CString strSubKey = "Software\Microsoft\Windows\Policies\Explorer\DisallowRun";
CString strName = "yang";
DWORD dwDisp;
if (ERROR_SUCCESS != RegCreateKeyEx(HKEY_CURRENT_USER, strSubKey, NULL,
NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS,
NULL, &hNewkey, &dwDisp))
{
return FALSE;
}
// 这里你强转下
if(ERROR_SUCCESS != RegSetValueExA(hNewkey, (LPCSTR)strName, NULL,
REG_SZ, (const BYTE*)strValue.GetBuffer(),
strlen(strValue)))
{
RegCloseKey(hNewkey);
return FALSE;
}
RegCloseKey(hNewkey);
return TRUE;
}
把你工程属性的编码设置成多字节,不要选Unicode,默认的是Unicode,你更改下
追问在哪里设置??我直接(LPCSTR)strName.GetBuffer()行不??追答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯