\r
// ソフトウェア自動更新\r
if(AutoCheckForUptatesInterval == 0)\r
- UpdateSoftware(YES, AutoApplyUpdates);\r
+ UpdateSoftware(YES, YES, AutoApplyUpdates);\r
\r
StartupProc(lpszCmdLine);\r
sts = FFFTP_SUCCESS;\r
if(AskUserOpeDisabled() == NO && AskTransferNow() == NO)\r
{\r
if(AutoCheckForUptatesInterval > 0 && time(NULL) - LastAutoCheckForUpdates >= AutoCheckForUptatesInterval * 86400)\r
- UpdateSoftware(YES, AutoApplyUpdates);\r
+ UpdateSoftware(YES, YES, AutoApplyUpdates);\r
}\r
break;\r
}\r
\r
// ソフトウェア自動更新\r
case MENU_UPDATES_CHECK :\r
- UpdateSoftware(NO, NO);\r
+ UpdateSoftware(NO, NO, NO);\r
break;\r
\r
default :\r
}\r
\r
// ソフトウェア自動更新\r
-void UpdateSoftware(int NoError, int NoConfirm)\r
+typedef struct\r
{\r
+ int NoError;\r
+ int NoConfirm;\r
+} UPDATESOFTWAREDATA;\r
+\r
+DWORD WINAPI UpdateSoftwareThreadProc(LPVOID lpParameter)\r
+{\r
+ UPDATESOFTWAREDATA* pData;\r
+ pData = (UPDATESOFTWAREDATA*)lpParameter;\r
+ UpdateSoftware(NO, pData->NoError, pData->NoConfirm);\r
+ free(pData);\r
+ return 0;\r
+}\r
+\r
+void UpdateSoftware(int Async, int NoError, int NoConfirm)\r
+{\r
+ UPDATESOFTWAREDATA* pData;\r
DWORD Version;\r
char VersionString[32];\r
char Tmp[FMAX_PATH+1];\r
- // 念のためマスターパスワードの一致を確認\r
- if(GetMasterPasswordStatus() == PASSWORD_OK)\r
+ if(Async == YES)\r
{\r
- Version = RELEASE_VERSION_NUM;\r
- LastAutoCheckForUpdates = time(NULL);\r
- if(CheckForUpdates(FALSE, NULL, &Version, VersionString))\r
+ if(pData = malloc(sizeof(UPDATESOFTWAREDATA)))\r
{\r
- if(Version > RELEASE_VERSION_NUM)\r
+ pData->NoError = NoError;\r
+ pData->NoConfirm = NoConfirm;\r
+ CloseHandle(CreateThread(NULL, 0, UpdateSoftwareThreadProc, pData, 0, NULL));\r
+ }\r
+ }\r
+ else\r
+ {\r
+ // 念のためマスターパスワードの一致を確認\r
+ if(GetMasterPasswordStatus() == PASSWORD_OK)\r
+ {\r
+ Version = RELEASE_VERSION_NUM;\r
+ LastAutoCheckForUpdates = time(NULL);\r
+ if(CheckForUpdates(FALSE, NULL, &Version, VersionString))\r
{\r
- sprintf(Tmp, MSGJPN362, VER_STR, VersionString);\r
- if(NoConfirm == YES || MessageBox(GetMainHwnd(), Tmp, "FFFTP", MB_YESNO) == IDYES)\r
+ if(Version > RELEASE_VERSION_NUM)\r
{\r
- strcpy(Tmp, TmpPath);\r
- SetYenTail(Tmp);\r
- strcat(Tmp, "update");\r
- _mkdir(Tmp);\r
- if(CheckForUpdates(TRUE, Tmp, &Version, VersionString))\r
+ sprintf(Tmp, MSGJPN362, VER_STR, VersionString);\r
+ if(NoConfirm == YES || MessageBox(GetMainHwnd(), Tmp, "FFFTP", MB_YESNO) == IDYES)\r
{\r
- MessageBox(GetMainHwnd(), MSGJPN365, "FFFTP", MB_OK);\r
- ApplyUpdatesOnExit = YES;\r
+ strcpy(Tmp, TmpPath);\r
+ SetYenTail(Tmp);\r
+ strcat(Tmp, "update");\r
+ _mkdir(Tmp);\r
+ if(CheckForUpdates(TRUE, Tmp, &Version, VersionString))\r
+ {\r
+ MessageBox(GetMainHwnd(), MSGJPN365, "FFFTP", MB_OK);\r
+ ApplyUpdatesOnExit = YES;\r
+ }\r
+ else if(NoError == NO)\r
+ MessageBox(GetMainHwnd(), MSGJPN363, "FFFTP", MB_OK | MB_ICONERROR);\r
}\r
- else if(NoError == NO)\r
- MessageBox(GetMainHwnd(), MSGJPN363, "FFFTP", MB_OK | MB_ICONERROR);\r
}\r
+ else if(NoError == NO)\r
+ MessageBox(GetMainHwnd(), MSGJPN364, "FFFTP", MB_OK);\r
}\r
else if(NoError == NO)\r
- MessageBox(GetMainHwnd(), MSGJPN364, "FFFTP", MB_OK);\r
+ MessageBox(GetMainHwnd(), MSGJPN363, "FFFTP", MB_OK | MB_ICONERROR);\r
}\r
- else if(NoError == NO)\r
- MessageBox(GetMainHwnd(), MSGJPN363, "FFFTP", MB_OK | MB_ICONERROR);\r
}\r
}\r
\r