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
Loopback



PostPosted: Wed Sep 03, 2025 20:27    Post subject: Reply with quote

Orion9 wrote:
Замутил я тут одну тему

Ну что сказать, весьма интересно, всё работает, положу в копилку. Хотя сейчас, при практически повсеместном распространении SSD проблема фрагментации, кажется, не очень актуальна. За последние лет десять мне Contig потребовался только пару раз для бокса Zalman VE200, там прошивка не читает iso-файлы, если число фрагментов больше какого-то количества. Но это всё же специфичный случай.

Orion9 wrote:
Иногда в поле попадают такие записи, как "1/3" или "10/42" и т.д. Первое число - количество фрагментов на разделе. Второе - в файловой записи. Вероятно, это следствие работы программ-дефрагментаторов, которые после дефрагментации файла

Что-то сомневаюсь, тестировал на дисках виртуалок, такая ситуация наблюдается почти везде, хотя я накопитель, где они находятся, никогда не дефрагментировал, даже системная задача дефрагментации отключена.

A55555 wrote:
При помощи данного плагина можно сделать выключение ПК после окончания копирования в TC?

Если без визуальных удобств в виде кнопочки "Выключить по завершении", то можно достаточно просто. Метод - как был предложен Orion9, это самое простое, остальное сложнее.

Включение мониторинга через горячую клавишу Ctrl+Alt+O, разумеется, ее можно поменять. При её нажатии, если обнаружено открытое окно копирования, функция начинает мониторить его, и когда оно закроется - запустит выключение компьютера.

По хорошему ещё надо бы учесть и как-то обрабатывать диалог, который может появляться при ошибке. Да и возможность отмены мониторинга не помешала бы.

Code:

LoadLibrary Plugins\Autorun_Runtime.dll
LoadLibrary Plugins\Autorun_Tweaks.dll

# Ctrl+Alt+O
SetHotkeyAction /K:C /K:A /H:O /DM "RunThread" "CopyMonitor"

Func CopyMonitor()
    Static hCopyWnd = 0
    # Если монитор уже запущен - выходим
    If hCopyWnd <> 0 Then Return
    hCopyWnd = WinFind(0, "TDLG2FILEACTIONMIN")
    If hCopyWnd = 0 Then
        ShowHint("Копирование не запущено", 0, 0, 1000, 1)
        WinAlign(LAST_HINT_WINDOW)
        Return
    EndIf
    ShowHint("Монитор выключения запущен, ожидание завершения копирования...", 0, 0, 5000, 1)
    WinAlign(LAST_HINT_WINDOW)
    While hCopyWnd <> 0
        Sleep(1000)
        hCopyWnd = WinFind(0, "TDLG2FILEACTIONMIN")
    Wend
    ShellExec("shutdown", "/s /t 60") # можно добавить /f для принудительного закрытия приложений
EndFunc
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group