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

记住用户上次使用后的设置也是使应用程序更为友好的重要步骤。将其存入注册表也是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项中。
发布了23 篇原创文章 · 获赞 0 · 访问量 5万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章