一、创建自启动复选框
在一个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进入系统配置页面,点击启动,即可看到自己的启动项目。