设置MFC程序开机自动启动

本文提供了在Windows系统中通过注册表设置程序开机启动的方法,并包括如何设置、取消开机启动及检查程序是否处于开机启动状态的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


//设置程序开机启动
BOOL AutoBootSet()
{
	HKEY hKey; 
	  
	//找到系统的启动项   
	CString lpRun = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); 

	//打开启动项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); 
		
		_tcscat(pFileName, _T(" -auto"));
		
		//添加一个子Key,并设置值, 下面应用程序名字(不加后缀.exe)  
		lRet = RegSetValueEx(hKey, _T("AppName"), 0, REG_SZ, (LPBYTE)pFileName,  (lstrlen(pFileName) + 1)*sizeof(TCHAR));   
		
		//关闭注册表   
		RegCloseKey(hKey); 
			
		if(lRet != ERROR_SUCCESS)
		{
			return false;
		}
		return true;
	}
	return false;
}


//取消程序开机启动
BOOL AutoBootCancel()
{
	HKEY hKey;   
	
	//找到系统的启动项   
	CString lpRun = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); 
	
	long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0, KEY_ALL_ACCESS, &hKey);   
	if(lRet == ERROR_SUCCESS)   
	{
		RegDeleteValue(hKey, _T("AppName"));
		
		//关闭注册表   
		RegCloseKey(hKey);

		return true;  
	}
	return false;
}


//判断程序是否开机自动启动
BOOL IsAutoBoot()
{
	LPWSTR *szArglist = NULL;
	int nArgs = -1;
	BOOL bRet = FALSE;
	szArglist = CommandLineToArgvW(GetCommandLine(), &nArgs);
	if((NULL == szArglist) || (nArgs == 2))
	{
		if (_tcsicmp(szArglist[1], _T("-auto")) == 0)
		{
			bRet = TRUE;			//开机启动
		}
		else
		{
			bRet = FALSE;
		}
	}
	else
	{
		bRet = FALSE;
	}

	LocalFree(szArglist);
	
	return bRet;
}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值