关闭

使用注册表键存储应用程序信息

592人阅读 评论(0) 收藏 举报
记住用户上次使用后的设置也是使应用程序更为友好的重要步骤。将其存入注册表也是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项中。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:47530次
    • 积分:726
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:21篇
    • 译文:0篇
    • 评论:7条
    最新评论