註冊表簡介
何爲註冊表
註冊表相當於Windows下的一個龐大的層次性數據庫.
基本上有責系統所有的配置信息
註冊表是windows操作系統中的一個核心數據庫,其中存放着各種參數,直接控制着windows的啓動、硬件驅動程序的裝載以及一些windows應用程序的運行,從而在整個系統中起着核心作用。
以上是引用百科的話
註冊表組成
註冊表由
- 鍵(rootkey)(也叫主鍵或稱“項”)
- 子鍵(subkey)(子項)
- 值項(value)構成。
一個鍵就是分支中的一個文件夾,而子鍵就是這個文件夾當中的子文件夾,子鍵同樣它也是一個鍵。
一個值項則是一個鍵的當前定義,由名稱、數據類型以及分配的值組成。
一個鍵可以有一個或多個值,每個值的名稱各不相同,如果一個值的名稱爲空,則該值爲該鍵的默認值。
五大根鍵
HKEY_USERS
保存了存放在本地計算機口令列表中的用戶標識和密碼列表HKEY_CURRENT_USER
該根鍵包含了本地工作站中存放的當前登錄的用戶信息HKEY_CURRENT_CONFIG
該根鍵存放着當前用戶桌面配置的數據HKEY_CLASSES_ROOT
該根鍵根據windows操作系統中所安裝的應用程序的擴展名,來指定文件類型。HKEY_LOCAL_MACHINE
該根鍵存放本地計算機的硬件信息,(我們的自啓動信息就在此)
實戰篇
(上面做了個這樣的簡介,現在開始實戰操作了)
原理很簡單
把我們的鍵值信息寫到下面的鍵裏就好了
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run(這個鍵裏就是)
1. 本軟件自動啓動:
CString currentPath;
GetModuleFileName(NULL,currentPath.GetBuffer(
MAX_PATH),MAX_PATH);
//上面獲取當前全路徑
CRegKey reg; //定義註冊表對象
//還是atl好用
reg.Open(HKEY_LOCAL_MACHINE,"Software\\Microsoft
\\Windows\\CurrentVersion\\Run");
//成功返回ERROE_SUCCESS
reg.Create(reg.m_hKey,L"TEST");
//這裏創建子健也就是一個文件夾,
//m_hKey其實就是打開的父鍵的返回的handle
reg.SetValue(currentPath,L"AUTORUN");
(2)刪除自動啓動:
CRegKey rk;
LPCTSTR subKey="TEST";
LPCTSTR KeyValue="*.exe";
LPCTSTR lp="Software\\Microsoft\\Windows\\CurrentVersion\\Run\\TEST\\";
if(rk.Open(HKEY_LOCAL_MACHINE,lp)==ERROR_SUCCESS)
if(rk.DeleteValue(KeyValue)==ERROR_SUCCESS)
{
//Do something
}
rk.Close();