//参数strPath就是你要开机自动运行程序的路径(包括程序名) 注意用\\
CString strReg; //注册表路径
HKEY hRegKey; //注册表键值句柄
BOOL bResult; //判断成功
CString sConvertStr; //转换的字符串
CString sFileName; //文件名称
strReg=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
if(RegOpenKey(HKEY_LOCAL_MACHINE, strReg, &hRegKey) != ERROR_SUCCESS) //打开注册表
bResult=FALSE;
else
{
_splitpath(strPath.GetBuffer(0),NULL,NULL,sFileName.GetBufferSetLength(MAX_PATH+1),NULL); //分析路径
strPath.ReleaseBuffer();
strReg.ReleaseBuffer();
sConvertStr.Format(" \"%s\" ",strPath); //转换字符串变量 加入"" 引用起来 否则写入注册表 没有""的中文路径 不起作用
if(::RegSetValueEx(hRegKey,sFileName,0,REG_SZ,(CONST BYTE *)sConvertStr.GetBuffer(0),sConvertStr.GetLength()) != ERROR_SUCCESS)
bResult=FALSE; //修改注册表
else
bResult=TRUE;
sConvertStr.ReleaseBuffer();
}
if(RegCloseKey(hRegKey) != ERROR_SUCCESS) //关闭注册表
{
bResult=FALSE;
}
return bResult;