Orion9

|
Posted: Fri Feb 06, 2026 19:13 Post subject: |
|
|
FallenAngel
А что тут думать? Нужно брать и делать, как вы написали )
Сначала считать ключ CompareTool и проверить путь в его значении: если путь существует, то выполнить cm_CompareFilesByContent, если не существует, то вывести MsgBox с вопросом, нужно ли скачивать WinMerge.
Опционально можно добавить возможность сравнения внутренним инструментом, если пользователь откажется от скачивания.
Небольшой пример:
| Code: | RegisterCommand 60050 "CompareTwoFiles"
Func CompareTwoFiles()
Local sTool
# чтение ключа
sTool = IniRead("~/R", COMMANDER_INI, "Configuration", "CompareTool", 0)
# раскрытие переменных окружения в значении ключа, если они есть
sTool = Set(sTool)
# проверка существования файла
If FileExist(sTool) Then
# файл существует
# послать команду сравнения и выйти
SendCommand(2022) # cm_CompareFilesByContent
Return
EndIf
# файл не существует
MsgBox("Инструмент сравнения не найден " & sTool & auCRLF & auCRLF & _
"Загрузить из Интернета?", "Autorun", 3+0+48)
# кнопка "Да" не была нажата, выйти из скрипта
If EXTENDED <> 6 Then Return
# запуск батника для загрузки
ShellExec(COMMANDER_PATH & "\Scripts\WinMergedownload.bat")
EndFunc |
Как у вас со скриптингом, можете дальше развить этот пример, а то я через неделю только освобожусь.
Кстати, вместо батника можно использовать функцию WinInetDownloadFile для загрузки файла прямо из Autorun
| Code: | Local url = "https://downloads.sourceforge.net/winmerge/winmerge-2.16.54-x64-exe.zip"
WinInetDownloadFile(url, TEMP & "\winmerge.zip") |
WinMerge загрузится во временный каталог в архиве winmerge.zip. Останется распаковать этот архив в нужное место и сообщить пользователю об окончании операции. |
|