|
|
@@ -1606,7 +1606,7 @@ void ResourceWatcherFSM::DetectAutoStartupCover()
|
|
|
ErrorCodeEnum rc = Error_InvalidState;
|
|
|
const int setType = InitialAutoStartupSetType();
|
|
|
bool toCheckAndDelteAutostartFile(false);
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("current startup type:%d, aim start type:%d", nStartupType, setType);
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("current startup type:%d, aim start type:%d", nStartupType, setType);
|
|
|
switch (setType)
|
|
|
{
|
|
|
case 1://将VBS改成EXE,前提是VBS必须已在注册表
|
|
|
@@ -1614,7 +1614,7 @@ void ResourceWatcherFSM::DetectAutoStartupCover()
|
|
|
rc = ChangeAutoStartupWithExe();
|
|
|
}
|
|
|
break;
|
|
|
- case 2: //设置使用EXE自启动
|
|
|
+ case 2: //设置使用EXE注册表自启动
|
|
|
if (nStartupType == 1 || nStartupType == 0 || nStartupType == 3) {
|
|
|
rc = ChangeAutoStartupWithExe();
|
|
|
if (rc == Error_Succeed && nStartupType == 3) {
|
|
|
@@ -1622,6 +1622,14 @@ void ResourceWatcherFSM::DetectAutoStartupCover()
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
+ case 5: //设置使用EXE注册表自启动(涵盖所有类型)
|
|
|
+ if (nStartupType == 1 || nStartupType == 0 || nStartupType == 3 || nStartupType == 4) {
|
|
|
+ rc = ChangeAutoStartupWithExe();
|
|
|
+ if (rc == Error_Succeed && (nStartupType == 3 || nStartupType == 4)) {
|
|
|
+ toCheckAndDelteAutostartFile = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
case 3: //不设置开机自启动
|
|
|
if (nStartupType == 1 || nStartupType == 2) {
|
|
|
rc = ChangeAutoStartupWithExe(false, true);
|
|
|
@@ -1635,14 +1643,6 @@ void ResourceWatcherFSM::DetectAutoStartupCover()
|
|
|
rc = ChangeAutoStartupWithExe(true);
|
|
|
}
|
|
|
break;
|
|
|
- case 5: //设置使用EXE自启动(涵盖所有类型)
|
|
|
- if (nStartupType == 1 || nStartupType == 0 || nStartupType == 3 || nStartupType == 4) {
|
|
|
- rc = ChangeAutoStartupWithExe();
|
|
|
- if (rc == Error_Succeed && (nStartupType == 3 || nStartupType == 4)) {
|
|
|
- toCheckAndDelteAutostartFile = true;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
@@ -1651,8 +1651,13 @@ void ResourceWatcherFSM::DetectAutoStartupCover()
|
|
|
CSimpleStringA strLnkPath(true);
|
|
|
bool scriptTypeOrNot;
|
|
|
if (IsHasSetAutoStartupByFolder(strLnkPath, scriptTypeOrNot) && !strLnkPath.IsNullOrEmpty()) {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("remove auto start lnk file: %s", strLnkPath.GetData());
|
|
|
- RemoveFileA(strLnkPath);
|
|
|
+ BOOL rmRet = RemoveFileA(strLnkPath);
|
|
|
+ if (!rmRet && ExistsFileA(strLnkPath)) {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("remove auto start lnk file failed: %s, GLE=%u", strLnkPath.GetData(), GetLastError());
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("remove auto start lnk file: %s", strLnkPath.GetData());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|