Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Autorun 
Author Message
Orion9



PostPosted: Fri Feb 06, 2026 19:13    Post subject: Reply with quote

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. Останется распаковать этот архив в нужное место и сообщить пользователю об окончании операции.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group