天天看點

mfc學習-程式自啟動一、建立自啟動複選框二、編寫OnBnClickedBtnSave()中代碼三、測試

一、建立自啟動複選框

    在一個mfc工程中建立一個複選框控件,命名為IDC_AUTOSTART。接着建立該複選框控件的控件型關聯變量,命名為m_autostart。再建立一個按鈕控件,用于點選時儲存複選框狀态。命名為IDC_BTN_SAVE,輕按兩下該按鈕控件生成函數OnBnClickedBtnSave()。

二、編寫OnBnClickedBtnSave()中代碼

    OnBnClickedBtnSave()中代碼如下:

void CSystemSetDlg::OnBnClickedBtnSave()
{
	HKEY hkey;
	CString szRegPath = AUTOSTART_REGISTRY_PATH;//軟體自啟動路徑 
	//如果自啟動複選框選中
	if(m_autostart.GetCheck()){	
		//打開啟動項
		if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, szRegPath, 0, KEY_ALL_ACCESS, &hkey)){
			TCHAR szModule[MAX_PATH];
			DWORD dwRet = GetModuleFileName(NULL, szModule, MAX_PATH);//擷取本程式的完整路徑
			LONG nRet = RegSetValueEx(hkey, _T("VideoCap"), 0, REG_SZ, (LPBYTE)szModule, dwRet);
			RegCloseKey(hkey);
		}else{
			g_ProLogger.TraceError("系統參數錯誤,不能随機啟動");
		}
	}else{
		if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, szRegPath, 0, KEY_ALL_ACCESS, &hkey)){
			if(ERROR_SUCCESS != RegDeleteValue(hkey, _T("VideoCap")))
				g_ProLogger.TraceError("删除系統資料庫中VideoCap失敗");
			RegCloseKey(hkey);
		}else{
			g_ProLogger.TraceError("打開系統資料庫鍵失敗");
		}
	}
	AfxMessageBox("儲存成功!");
	OnOK();
}
           

    代碼中用到的函數,如要深入了解請檢視MSDN。

三、測試

    勾選自啟動複選框後,使用快捷鍵Win+R運作msconfig進入系統配置頁面,點選啟動,即可看到自己的啟動項目。

繼續閱讀