VC++程序开机自动启动

<pre name="code" class="cpp">/****/        
HKEY   RegKey; 
	LPCSTR KeyPath=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"); 
	//打开Run注册项
	if(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,KeyPath,0,KEY_READ|KEY_WRITE,&RegKey)==ERROR_SUCCESS)
	{
		wchar_t lpData[180]; 
		DWORD cbData; 
		DWORD dwType = REG_SZ; 
		char keyValue[]="yourName";
		if(::RegQueryValueEx(RegKey,keyValue,0,&dwType,(LPBYTE)lpData,&cbData) == ERROR_SUCCESS) //已存在
		{
			::RegCloseKey(RegKey);//关闭已经打开的注册项
			return TRUE;//已注册值,返回
		}
		else
		{
			//不存在注册自启动项
			::RegCloseKey(RegKey);//关闭已经打开的注册项
			CString   sPath;   
			GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);     
			if(GetFileAttributes(sPath) != -1)   
			{
				RegKey=NULL;
				::RegOpenKey(HKEY_LOCAL_MACHINE,KeyPath,&RegKey);
				::RegSetValueEx(RegKey,_T("yourName"),0,REG_SZ,(const unsigned char*)(LPCTSTR)sPath,sPath.GetLength());
				this->UpdateData(FALSE);
				::RegCloseKey(RegKey);//关闭已经打开的注册项
				return TRUE;//注册表注册自动启动成功
			}   
			else
			{
				return FALSE; //注册表注册自动启动失败
			}
		}
	}
	else 
	{
		return FALSE;//打开注册表Run项失败
	}


 
 
 
 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值