//////////////////////////////////////////////////////////////////////////
//运用程序开机自启动
INT MakeSoftWareStartAuto(LPCTSTR lpValueName)
{
//根键、子键名称、和到子键的句柄
HKEY hRoot=HKEY_LOCAL_MACHINE;
char *szSubKey="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hKey;
//打开指定子键
DWORD dwDisposition=REG_OPENED_EXISTING_KEY;// 如果不存在不创建
LONG lRet=::RegCreateKeyEx(hRoot,szSubKey,0,NULL,
REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDisposition);
if (lRet!=ERROR_SUCCESS)
{
return -1;
}
//获得当前执行文件的文件名(包含路径)
char szModule[MAX_PATH];
::GetModuleFileName(NULL,szModule,MAX_PATH);
//创建一个新的键值,设计键值数据为文件名
lRet=::RegSetValueEx(hKey,lpValueName,0,REG_SZ,(BYTE*)szModule,strlen(szModule));
if(lRet==ERROR_SUCCESS)
{
::RegCloseKey(hKey);
}
}