基于MFC对话框编程:设置开机自启动

操作系统: Windows7/Windows10 64位

运行环境: Visual Studio 10

文件编码: Unicode



编程思路:

  设置自启动:

    1、定义注册表项HKEY heky;

    2、通过RegOpenKeyEx函数打开电脑的启动项;

    3、通过GetModuleFileName函数获取本软件的全路径;

    4、通过RegSetValueEx函数添加注册表项;

  取消自启动:

    1、通过RegOpenKeyEx函数打开电脑的启动项;

    2、通过RegDeleteValue函数删除注册表项;


void CXXXDlg::Autostart()
{
	m_uCheckState = !m_uCheckState;//BOOL类型的成员变量

	HKEY hKey;  
	
	//找到系统的启动项   
	CString lpRun = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); 

	if(m_uCheckState)
	{	
		//打开启动项Key   
		long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0, KEY_ALL_ACCESS, &hKey);   
		if(lRet == ERROR_SUCCESS)   
		{   
			TCHAR pFileName[MAX_PATH] = {0};   
			
			//得到程序自身的全路径   
			DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH); 
			TRACE(pFileName);
			
			//添加一个子Key,并设置值 // 下面"Demo"是应用程序名字(不需要加后缀.exe)  
			lRet = RegSetValueEx(hKey, _T("Demo"), 0, REG_SZ, (LPBYTE)pFileName,  (lstrlen(pFileName) + 1)*sizeof(TCHAR));   
			
			//关闭注册表   
			RegCloseKey(hKey); 	
			if(lRet != ERROR_SUCCESS)   
			{   
				MessageBox(_T("系统参数错误,设置自启动失败!"),_T("提示"));    
			}
			else
			{
				MessageBox(_T("开机启动设置成功!"), _T("提示")); 
			}
		}
		else   
		{   
			MessageBox(_T("系统参数错误,设置自启动失败!"),_T("提示"));   
		}
	}
	else
	{
		long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0, KEY_ALL_ACCESS, &hKey);   
		if(lRet == ERROR_SUCCESS)   
		{
			RegDeleteValue(hKey, _T("Demo"));
			//关闭注册表   
			RegCloseKey(hKey);

			MessageBox(_T("关闭开机启动成功!"), _T("提示"));   
		}
	} 
}

参考文章:

        点击链接:VS2013/MFC基于对话框编程:[16]开机自启动

        点击链接:MFC设置开机启动



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值