请问,操作注册表用的类? 我想把一些参数写到注册表里,请问该用什么类,如果可以的话稍微介绍一下这个类! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用注册表键存储应用程序信息 记住用户上次使用后的设置也是使应用程序更为友好的重要步骤。将其存入注册表也是Windows程序的要求。 这个过程牵扯到确定注册表中存储信息的地方,然后用一些MFC函数在必要时读出和写入。保存用户本次运行时的设置的常规办法是将其保存在注册表的HKEY_CURRENT_USER\Software主键中,当然还包含诸如在Sofware键下建立一个关于公司名的键,在公司名键下建立应用程序名称键,然后是存储各类信息的子键。如HKEY_CURRENT_USER\Software\DomeWorks\DeskShow键下保存了我所写的DeskShow程序的键及值。 实现上述操作很简单。在InitInstance()函数中用CWinApp::SetRegistryKey()可设置公司名,如: BOOL MyApp::InitInstance() { SetRegistryKey(_T("DomeWorks")); ? } 如果你下一个子键为应用程序名的话,则读写时必须任何额外操作。默认情况下,MFC将把应用程序名当作配置(文件或主键)名。但如果你想修改它,或许它是主应用的一个子项目吧,紧跟上述代码写下: free((void *)m_pszProfileName); m_pszProfileName = _tcsdup(_T("DeskShow")); 然后,当读写注册表值时,用CWinApp的函数GetProfileString(), GetProfileInt(), GetProfileBinary(), WriteProfileString(), WriteProfileInt(),WriteProfileBinary() : void MyClass::MyFunction() { CString lastfilename = AfxGetApp()->GetProfileString( _T("Initialize"),_T("LoadFile"),_T("")); AfxGetApp()->WriteProfileInt(_T("Epochs"), T("CurrentTime"), m_currtime); ? } 第一个调用是从HKEY_CURRENT_USER\Software\DomeWorks\DeskShow\Initialize键中取出LoadFile项的值来,如果无值则返回0。第二个调用将成员变量m_currtime写入DeskShow主键下的Epochs键的CurrentTime项中。 VC没有自己的注册表类,但许多人写了外加类,主要有CRegKey,CRegister,你可以在网上搜索一下“注册表”找到他们。通常添写注册表都是用的API。 : icemanpro(雅彦) 谢谢,我是新手,如果不怕麻烦,留QQ给我!! UDP通信,只发送了一次,服务端却收到三次。 吐血推荐:我整理的chm教程-"VC和VC++编程教程整理CHM" win7 下以管理员权限运行命令。在线等 关于图像控件的问题,请高手多多帮忙!! mfc工程的入口函数 管道输入问题,大家进来看看 看TCP/IP详解,仍有不解 这vc到底怎么学啊?大家来谈谈(有分) 关于mfc中窗口分割后的问题 我想把两个可执行文件变为一个可执行文件,谁能告诉我怎样做? 请问怎样将COleVariant类型转为CString类型? 怎样获取输入错误消息后弹出的提示对话框的句柄?
记住用户上次使用后的设置也是使应用程序更为友好的重要步骤。将其存入注册表也是Windows程序的要求。
这个过程牵扯到确定注册表中存储信息的地方,然后用一些MFC函数在必要时读出和写入。保存用户本次运行时的设置的常规办法是将其保存在注册表的HKEY_CURRENT_USER\Software主键中,当然还包含诸如在Sofware键下建立一个关于公司名的键,在公司名键下建立应用程序名称键,然后是存储各类信息的子键。如HKEY_CURRENT_USER\Software\DomeWorks\DeskShow键下保存了我所写的DeskShow程序的键及值。
实现上述操作很简单。在InitInstance()函数中用CWinApp::SetRegistryKey()可设置公司名,如: BOOL MyApp::InitInstance()
{
SetRegistryKey(_T("DomeWorks"));
?
}
如果你下一个子键为应用程序名的话,则读写时必须任何额外操作。默认情况下,MFC将把应用程序名当作配置(文件或主键)名。但如果你想修改它,或许它是主应用的一个子项目吧,紧跟上述代码写下: free((void *)m_pszProfileName);
m_pszProfileName = _tcsdup(_T("DeskShow")); 然后,当读写注册表值时,用CWinApp的函数GetProfileString(), GetProfileInt(), GetProfileBinary(), WriteProfileString(), WriteProfileInt(),WriteProfileBinary() : void MyClass::MyFunction()
{
CString lastfilename = AfxGetApp()->GetProfileString(
_T("Initialize"),_T("LoadFile"),_T(""));
AfxGetApp()->WriteProfileInt(_T("Epochs"), T("CurrentTime"),
m_currtime);
?
} 第一个调用是从HKEY_CURRENT_USER\Software\DomeWorks\DeskShow\Initialize键中取出LoadFile项的值来,如果无值则返回0。第二个调用将成员变量m_currtime写入DeskShow主键下的Epochs键的CurrentTime项中。
谢谢,我是新手,如果不怕麻烦,留QQ给我!!