国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

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

2020-01-26 13:55:25
字體:
來源:轉載
供稿:網友

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

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

打開注冊表要使用RegOpenKeyEx 函數

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

第一個參數,我們要傳入
HKEY_LOCAL_MACHINE

第二個參數,我們要傳入
SOFTWARE//Microsoft//Windows//CurrentVersion//Run

第三個參數,我們要傳入
0

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

第五個參數,傳入一個HKEY的引用即可

寫注冊表使用RegSetValueEx
函數

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

貼上代碼,win8 系統下 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系統下,需要獲得管理員權限才能正確運行上述代碼,否則,無法打開注冊表

具體方法如下:

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

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

以管理員身份重新運行VS2012

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卢氏县| 祁东县| 柳林县| 壶关县| 邓州市| 历史| 榆林市| 齐齐哈尔市| 庆元县| 汉源县| 襄垣县| 闵行区| 兰考县| 新野县| 玉林市| 临颍县| 松原市| 原平市| 宝鸡市| 阳新县| 石景山区| 霍邱县| 闽清县| 巩留县| 广东省| 南川市| 肃北| 绥中县| 万盛区| 泽库县| 彰化市| 贡山| 丰都县| 舟山市| 苏尼特右旗| 新绛县| 依安县| 麻城市| 容城县| 平湖市| 大石桥市|