欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c++ 寫注冊表方式讓程序開機自啟動

 更新時間:2017年09月14日 23:24:02   投稿:mdxy-dxy  
這篇文章主要介紹了c++ 寫注冊表方式讓程序開機自啟動,需要的朋友可以參考下

打開注冊表:win+R, 輸入regedit 點擊確定

你會看到五個根目錄,開機自啟動的信息寫在 HKEY_LOCAL_MACHINE 下面,具體的目錄為 SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
要怎么將開機自啟動的信息寫入注冊表中呢?其實過程很簡單,第一步,打開注冊表,第二步,寫注冊表,第三步,關(guān)閉鍵的句柄

打開注冊表要使用RegOpenKeyEx 函數(shù)

    
LONGRegOpenKeyEx(
  HKEYhKey, // 需要打開的主鍵的名稱
  LPCTSTRlpSubKey, // 需要打開的子鍵的名稱
  DWORDulOptions, // 保留,設為0
  REGSAM samDesired, // 安全訪問標記,也就是權(quán)限
  PHKEYphkResult // 得到的將要打開鍵的句柄
)

第一個參數(shù),我們要傳入
HKEY_LOCAL_MACHINE

第二個參數(shù),我們要傳入
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

第三個參數(shù),我們要傳入
0

第四個參數(shù),稍微有點調(diào)皮,很多實例都傳入KEY_ALL_ACCESS,但是在64位操作系統(tǒng)下,最好傳入KEY_ALL_ACCESS|KEY_WOW64_64KEY,不然寫完注冊表后,不會顯示寫入的注冊信息

第五個參數(shù),傳入一個HKEY的引用即可

寫注冊表使用RegSetValueEx
函數(shù)

LONG RegSetValueEx(
  HKEY hKey,// RegOpenKeyEx函數(shù)中傳入的最后一個參數(shù),也就是打開的鍵的句柄
  LPCTSTR lpValueName, // 鍵的名稱
  DWORD Reserved, // 傳入NULL
  DWORD dwType, // 傳入REG_SZ
  CONST BYTE *lpData, // 要啟動的程序的完整地址
  DWORD cbData// lpData的大小
);

貼上代碼,win8 系統(tǒng)下 vs2012

void test()
{
	
	LPCTSTR lpSubKey = L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; 
	
	HKEY hKey;
	REGSAM flag = KEY_WOW64_64KEY; 
	DWORD dwDisposition = REG_OPENED_EXISTING_KEY; 
	LONG lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS|flag,&hKey);
	//LONG lRet = ::RegCreateKeyEx(HKEY_LOCAL_MACHINE, lpSubKey, NULL, NULL, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition); 
	if ( ERROR_SUCCESS != lRet) 
  { 
    return; 
  } 
	
	TCHAR *pchrName = L"D:\\Program Files (x86)\\Tencent\\QQ\\Bin\\QQ.exe";
	lRet = ::RegSetValueEx(hKey, TEXT("TEST"), NULL, REG_SZ, (LPBYTE)pchrName, wcslen(pchrName)*sizeof(TCHAR)+1); //設置注冊表項 
  if ( ERROR_SUCCESS != lRet) 
  { 
    return; 
  } 
 
  ::RegCloseKey(hKey); //與RegCreateKeyEx配對寫 
	
};

還有一點要說明,在win8系統(tǒng)下,需要獲得管理員權(quán)限才能正確運行上述代碼,否則,無法打開注冊表

具體方法如下:

VS2012,在項目屬性-配置屬性-鏈接器-清單文件-UAC執(zhí)行級別

中設為 requireAdministrator (/level='requireAdministrator')

以管理員身份重新運行VS2012

相關(guān)文章

  • 深入理解鏈表的各類操作詳解

    深入理解鏈表的各類操作詳解

    本篇文章是對鏈表的各類操作進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言數(shù)據(jù)結(jié)構(gòu)中堆排序的分析總結(jié)

    C語言數(shù)據(jù)結(jié)構(gòu)中堆排序的分析總結(jié)

    堆是計算機科學中一類特殊的數(shù)據(jù)結(jié)構(gòu)的統(tǒng)稱,通常是一個可以被看做一棵完全二叉樹的數(shù)組對象。而堆排序是利用堆這種數(shù)據(jù)結(jié)構(gòu)所設計的一種排序算法。本文將通過圖片詳細介紹堆排序,需要的可以參考一下
    2022-04-04
  • C語言小程序 數(shù)組操作示例代碼

    C語言小程序 數(shù)組操作示例代碼

    對數(shù)組進行操作,查找、插入、刪除
    2013-07-07
  • C++中判斷成員函數(shù)是否重寫

    C++中判斷成員函數(shù)是否重寫

    這篇文章主要介紹了C++中判斷成員函數(shù)是否重寫的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • C++實現(xiàn)LeetCode(20.驗證括號)

    C++實現(xiàn)LeetCode(20.驗證括號)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(20.驗證括號),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 深入解讀C++ 內(nèi)聯(lián)函數(shù)inline|nullptr

    深入解讀C++ 內(nèi)聯(lián)函數(shù)inline|nullptr

    內(nèi)聯(lián)函數(shù):用** inline 修飾的函數(shù)叫做內(nèi)聯(lián)函數(shù),編譯時C++編譯器會在調(diào)用的地方展開內(nèi)聯(lián)函數(shù)**,這樣調(diào)用內(nèi)聯(lián)函數(shù)就需要創(chuàng)建棧楨,就提高效率了,這篇文章給大家介紹C++ 內(nèi)聯(lián)函數(shù)inline|nullptr的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • C++中地圖按鍵排序?qū)崿F(xiàn)示例

    C++中地圖按鍵排序?qū)崿F(xiàn)示例

    這篇文章主要為大家介紹了C++中地圖按鍵排序?qū)崿F(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • c/c++?Error:?redefinition?of?'xxx'的問題及解決方法

    c/c++?Error:?redefinition?of?'xxx'的問題及解決方法

    兩個類/文件同時引用定義ReplyInfo的頭文件,會造成頭文件中定義重復定義,本文給大家分享c/c++?Error:?redefinition?of?‘xxx’?的問題及解決方法,感興趣的朋友一起看看吧
    2023-08-08
  • C/C++中棧(stack)&堆(heap)詳解及其作用介紹

    C/C++中棧(stack)&堆(heap)詳解及其作用介紹

    這篇文章主要介紹了C/C++中棧(stack)&堆(heap)詳解及其作用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • VC++的combobox控件用法匯總

    VC++的combobox控件用法匯總

    這篇文章主要介紹了VC++的combobox控件用法,對VC++初學者來說尤為重要,需要的朋友可以參考下
    2014-08-08

最新評論