If an executable module exists and its checksum matches, run it for execution:
Code: Select all
************************************************************************************************************
******** Если исполнимый модуль существует и его контрольная сумма совпадает, то запустить его на исполнение
************************************************************************************************************
FUNCTION LC_RunShell(cFile, mCheckSum)
Running(.T.)
CLoseAll() // Закрытие всех баз данных с ожиданием завершения операций
DIRCHANGE(Disk_dir) // Перейти в папку с исполнимым модулем системы Эйдос
* ********** Формирование текстового файла с параметрами запуска модуля ************************
* set device to printer;set printer on;set printer to ("ImageResize.txt");set console off
* ??M_PathAppl+"\SWOTDiagrCls\"+cFileName+' '+ALLTRIM(STR(nWidth))+' '+ALLTRIM(STR(nHeight-29)) // <<<===#################
* Set device to screen;Set printer off;Set printer to;Set console on
* а можно просто сформировать и записать переменную StrFile(). Наверное так лучше
************************************************************************************************
IF FILE(cFile)
IF FILECHECK(cFile) = mCheckSum
RunShell("",cFile,.F.) // Чтобы процесс не бежал дальше, пока ImageResize.exe не закончится
ELSE
aMess := {}
AADD(aMess, L('Исполнимый модуль: "')+cFile+'" '+L('заменен или поврежден, возможно вирусами.'))
AADD(aMess, L('Поэтому он не может быть запущен на исполнение. Для получения этого модуля'))
AADD(aMess, L('скачайте и установите новую версию системы "Эйдос" с сайта автора:'))
AADD(aMess, L('- полная инсталляция (около 217 Мб): http://lc.kubagro.ru/Aidos-X.exe'))
AADD(aMess, L('- только обновления (около 8 Мб): http://lc.kubagro.ru/Downloads.exe'))
AADD(aMess, L('Контрольная сумма=')+ALLTRIM(STR(FILECHECK(cFile),19))) // <<<===#################
LB_Warning(aMess)
ENDIF
ELSE
aMess := {}
AADD(aMess, L('Исполнимый модуль: "')+cFile+'" '+L('в текущей папке системы "Эйдос" отсутствует.'))
AADD(aMess, L('Для его получения скачайте и установите новую версию системы "Эйдос" с сайта автора:'))
AADD(aMess, L('- полная инсталляция (около 217 Мб): http://lc.kubagro.ru/Aidos-X.exe'))
AADD(aMess, L('- только обновления (около 8 Мб): http://lc.kubagro.ru/Downloads.exe'))
LB_Warning(aMess)
ENDIF
CLoseAll() // Закрытие всех баз данных с ожиданием завершения операций
Running(.F.)
RETURN nil