直接调用写注册表进行启动,启动方式为 LOAD ,封装好了两个函数可以直接调用啦。没怎么加容错处理。
代码洁癖症愈发严重。
int exist_startup()//写记号 标记有没有设置过启动项
{
HKEY key;
if(RegOpenKey(HKEY_CURRENT_USER,_T("software\\XXZH"),&key) == ERROR_SUCCESS){
RegCloseKey(key);
return 1;
}
RegCreateKey(HKEY_CURRENT_USER,_T("software\\XXZH"),&key);
RegCloseKey(key);
return 0;
}
int add_load_startup()
{
if (exist_startup()==1){
return 0;
}
TCHAR str_ExePath[MAX_PATH]={0};
GetModuleFileName(NULL,str_ExePath,MAX_PATH);
HKEY KEY=NULL;
RegOpenKey(HKEY_CURRENT_USER,_T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows"),&KEY);
RegSetValueEx(KEY,_T("load"),0,REG_SZ,(CONST BYTE*)str_ExePath,lstrlen(str_ExePath)*2);
RegCloseKey(KEY);
return 1;
}