Index: src/ch/StatusDlg.cpp =================================================================== diff -u -N -r9ddf8fdd5f641491dd30c49eb90f8f740314b6af -rdb26c9ac6945d5c754c3460dd55bd6d53e2c9e7e --- src/ch/StatusDlg.cpp (.../StatusDlg.cpp) (revision 9ddf8fdd5f641491dd30c49eb90f8f740314b6af) +++ src/ch/StatusDlg.cpp (.../StatusDlg.cpp) (revision db26c9ac6945d5c754c3460dd55bd6d53e2c9e7e) @@ -26,6 +26,7 @@ #include "Structs.h" #include "CfgProperties.h" #include "../libchengine/TTaskManager.h" +#include "../libchengine/TLocalFilesystem.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -733,7 +734,15 @@ if(!spTask) return; - ULONG_PTR hResult = (ULONG_PTR)ShellExecute(this->m_hWnd, _T("open"), _T("notepad.exe"), spTask->GetLogPath().ToString(), nullptr, SW_SHOWNORMAL); + chcore::TSmartPath logPath = spTask->GetLogPath(); + chengine::TLocalFilesystem localFilesystem(GetLogFileData()); + if(!localFilesystem.PathExist(logPath)) + { + MsgBox(IDS_LOGFILEEMPTY_STRING, MB_OK | MB_ICONINFORMATION); + return; + } + + ULONG_PTR hResult = (ULONG_PTR)ShellExecute(this->m_hWnd, _T("open"), _T("notepad.exe"), logPath.ToString(), nullptr, SW_SHOWNORMAL); if(hResult < 32) { ictranslate::CFormat fmt(GetResManager().LoadString(IDS_SHELLEXECUTEERROR_STRING));