欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

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

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

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

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

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

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

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

第四個參數(shù),稍微有點調皮,很多實例都傳入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)下,需要獲得管理員權限才能正確運行上述代碼,否則,無法打開注冊表

具體方法如下:

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

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

以管理員身份重新運行VS2012

上一篇:C語言中枚舉與指針的實例詳解

欄    目:C語言

下一篇:關于C++面向對象設計的訪問性問題詳解

本文標題:c++ 寫注冊表方式讓程序開機自啟動

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1194.html

網頁制作CMS教程網絡編程軟件編程腳本語言數(shù)據庫服務器

如果侵犯了您的權利,請與我們聯(lián)系,我們將在24小時內進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網 版權所有