vc訪問註冊表

在Visual C++ 6.0或5.0環境中新建一基於對話框的工程,設置了兩個命令按鈕,名爲“查詢用戶信息”和“修改用戶信息”,用來查詢和修改註冊表中用戶姓名和公司名稱。這裏須要指出的是,用戶的信息位於系統註冊表中 //HKEY_LOCAL_MACHINE//Software//Microsoft//Windows//CurrentVersion// 的位置,鍵值名RegisteredOwner和RegisteredOrganization分別表示用戶的姓名和用戶公司的名稱。

 

//讀取註冊表

void CRegistryView::OnButton1()
{
 // TODO: Add your control notification handler code here
 HKEY hKEY;
 LPCTSTR path="Software//Microsoft//MS Setup (ACME)//User Info";

 long ret=::RegOpenKeyEx(HKEY_CURRENT_USER,path, 0, KEY_READ,&hKEY);

 if(ret!=ERROR_SUCCESS) //如果無法打開hKEY,則終止程序的執行
 {
  MessageBox("錯誤: 查詢無法打開有關的hKEY!");
  return;
 }

 unsigned char tmp[256]="/0";
 DWORD type=REG_SZ;
 DWORD size=80;
 ret=::RegQueryValueEx(hKEY,"DefName", NULL,&type,tmp,&size);
 if(ret!=ERROR_SUCCESS)
 {
  MessageBox("錯誤:無法查詢有關註冊表信息!");
  return;
 }
 CString tmpstring=CString(tmp);
 AfxMessageBox(tmpstring);
 ::RegCloseKey(hKEY);
}

//寫入註冊表

void CRegistryView::OnButton2()
{
 // TODO: Add your control notification handler code here
 unsigned char tmp[256];
 sprintf((char *)tmp,"%s","hello");
 CString tmpstring=tmp;

 HKEY hKEY;
 DWORD type=REG_SZ;
 DWORD size=tmpstring.GetLength()+1;
 LPCTSTR path="Software//Microsoft//MS Setup (ACME)//User Info" ;

 long ret=::RegOpenKeyEx(HKEY_CURRENT_USER,path,0,KEY_WRITE, &hKEY);
 if(ret!=ERROR_SUCCESS)
 {
  MessageBox("錯誤: 修改無法打開有關的hKEY!");
  return;
 }
 ret=::RegSetValueEx(hKEY,"DefName",NULL,type,tmp,size);
 if(ret!=ERROR_SUCCESS)
 {
  MessageBox("錯誤: 無法修改有關註冊表信息!");
  return;
 }
 ::RegCloseKey(hKEY);
}

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/sinomac/archive/2007/02/23/1512967.aspx

發佈了28 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章