Loopback
|
Posted: Wed Sep 03, 2025 20:27 Post subject: |
|
|
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
|
|
|