使用註冊表鍵存儲應用程序信息

記住用戶上次使用後的設置也是使應用程序更爲友好的重要步驟。將其存入註冊表也是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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章