修改登錄檔實現程式開機自啟動
阿新 • • 發佈:2018-11-06
修改登錄檔實現程式開機自啟動
2017年09月27日 10:55:37
閱讀數:335
登錄檔簡介
何為登錄檔
登錄檔相當於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();