设置QQ开机启动的小程序,该怎么处理

设置QQ开机启动的小程序
#include <windows.h>
#include <stdio.h>
int main()
{
//通过修改注册表来设置QQ为开机启动
unsigned char szStart[100]="D:\\Program Files\\Tencent\\QQ\\Bin\\QQ.exe";
char szNotKnow[128]="QQ";
HKEY hKey;
LONG lnRes=RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0L,
KEY_WRITE,
&hKey);
if(lnRes==ERROR_SUCCESS)
{
//打开成功
lnRes=RegSetValueEx(hKey,
szNotKnow,
0,
REG_SZ,
szStart,
REG_SZ);
printf("%s\n",szStart);
if(lnRes==ERROR_SUCCESS)
printf("加载成功!\n");

}


return 0;
}
运行成功,可以对注册表做修改,但是没有把值赋过去, 不知道是为什么。在虾们帮我看看



------解决方案--------------------
这个是我完全运行成功的版本,你比较一下。
HKEY h_key = HKEY_LOCAL_MACHINE;
HKEY h_result;
CString m_SubKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
RegOpenKey(h_key,m_SubKey,&h_result);
CString m_Appname('0',MAX_PATH) ;
int b=m_autorun.GetCheck();

if(b){
GetModuleFileName(NULL,(char*)m_Appname.GetBuffer(m_Appname.GetLength()),MAX_PATH);
char appname[1024];
strcpy(appname,"\"");
strcat(appname,m_Appname.GetBuffer());
strcat(appname,"\"");
if (RegSetValueEx(h_result,"VolitBackup",0,REG_SZ,(const BYTE*)appname,strlen(appname))!=ERROR_SUCCESS)
{
AfxMessageBox("注册表设置失败.");
}
}
else{
//取消自动运行
RegDeleteValue(h_result,"VolitBackup");
RegCloseKey(h_result);
}
------解决方案--------------------
不错,