如何用程序读取注册表时,分析某一键值时无效的。 另外。windows中有那些文件是临时文件?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是这个意思,我说的临时文件就是*.tmp;~cpp;~hpp;~h;pdb;obj等这些文件。 你用这个函数读RegQueryValueEx看返回值就知道这键有没有效 我是这样做的 //打开注册表取数据 DWORD dwRet; LONG ret; ret=RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\CrazyCount\\", 0L, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwRet); if(dwRet==REG_CREATED_NEW_KEY) { //创建新的键值 WriteReg(0); } else if(dwRet==REG_OPENED_EXISTING_KEY) { //读取注册表数据 DWORD len = 4; ret = RegQueryValueEx(hKey, "Current", 0, NULL, (BYTE*)&m_dwCurrent, &len); ret = RegQueryValueEx(hKey, "Num", 0, NULL, (BYTE*)&m_dwNum, &len); LPBYTE buffer=new BYTE[1024]; len = 1024; ret = RegQueryValueEx(hKey, "Sentence", 0, NULL, buffer, &len); m_strSentence = (LPCSTR)buffer; len = 1024; ret = RegQueryValueEx(hKey, "Explain", 0, NULL, buffer, &len); m_strExplain = (LPCSTR)buffer; delete[] buffer; } else { AfxMessageBox("注册表出错!"); return TRUE; } AssertReg(ret);void CCrazyCountDlg::AssertReg(LONG ret){ //显示错误信息 if(ret) { LPTSTR lpMsg=new char[81]; ::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, ret, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), lpMsg, 80, NULL); MessageBox(lpMsg); delete[] lpMsg; }} C++Primer成员访问操作符一节的一段话求解释 关于制作安装的问题? 怎么把CString转换成unicode (VC) 如何在system用户下获得当前登录的UserName? Rose对vc6正向工程的问题... 新手提问:关于 消息死锁 求教:当一子窗口弹出时,怎么使当前窗口焦点不变! 一个关于做COM插件的问题!大家近来讨论一下! ATL组件中如何才能返回记录集指针? 为何socket不是核心对象(Kernel object)? 怎样把char *类型转换成LPCTSTR 或CString类型? 在公司开发的哥们讲讲经验吧!
看返回值就知道这键有没有效
//打开注册表取数据
DWORD dwRet;
LONG ret;
ret=RegCreateKeyEx(HKEY_CURRENT_USER,
"Software\\CrazyCount\\", 0L,
NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
NULL, &hKey, &dwRet); if(dwRet==REG_CREATED_NEW_KEY)
{
//创建新的键值
WriteReg(0);
}
else if(dwRet==REG_OPENED_EXISTING_KEY)
{
//读取注册表数据
DWORD len = 4;
ret = RegQueryValueEx(hKey, "Current", 0, NULL,
(BYTE*)&m_dwCurrent, &len);
ret = RegQueryValueEx(hKey, "Num", 0, NULL,
(BYTE*)&m_dwNum, &len);
LPBYTE buffer=new BYTE[1024];
len = 1024;
ret = RegQueryValueEx(hKey, "Sentence", 0, NULL,
buffer, &len);
m_strSentence = (LPCSTR)buffer;
len = 1024;
ret = RegQueryValueEx(hKey, "Explain", 0, NULL,
buffer, &len);
m_strExplain = (LPCSTR)buffer;
delete[] buffer;
}
else
{
AfxMessageBox("注册表出错!");
return TRUE;
} AssertReg(ret);void CCrazyCountDlg::AssertReg(LONG ret)
{
//显示错误信息
if(ret)
{
LPTSTR lpMsg=new char[81];
::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
0, ret, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
lpMsg, 80, NULL);
MessageBox(lpMsg);
delete[] lpMsg;
}
}