Autorun

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

В коллекцию примеров использования и применения.
Заметил я что если в конфиге.aucfg много разных настроек (диалоги, менюхи, прописывание данных в ini), то время их загрузки бывает разным: то побыстрее, то подольше. Понятно, что причины объективные, внешние условия влияют. Но иногда (особенно когда торопишься) щёлкнешь по кнопке, а менюха не открывается, не успела ещё загрузиться. Решение: «полоса прогресса» загрузки в заголовке окна TC.

Код: Выделить всё

Sleep(500)
# сохраняем родной заголовок окна
Global TitleOrig = WinGetText()

# создаём новый, с «полосой прогресса»
Global BootProgress = Set ("> LOADING SETTINGS  " & ". ")
WinSetText(%BootProgress%)

# создаём ф-цию приращения полосы
Func Boot()
  BootProgress = Set (%BootProgress% & ". ")
  WinSetText(%BootProgress%)
EndFunc # -- Boot

# тут что-то делаем...

Boot()

# опять что-то делаем...

Boot()

# и опять... т.е. через некоторые промежутки расставляем вызов нашей «полосы прогресса»
# и в конце восстанавливаем родной заголовок:

Sleep(500)
WinSetText(%TitleOrig%)

# если в процессе загрузки мы вызываем сторонние утилиты, то фокус может улетать от окна TC
# возвращаем его обратно
WinSetState(23)
Amo ergo sum
yahuu
Сообщения: 40
Зарегистрирован: Чт июн 22, 2023 07:32

Сообщение yahuu »

sa писал(а):yahuu
Видимо, у вас в Autorun команда вызывается комбинацией клавиш с модификатором Alt.
Используйте вместо cm_Copy команду cm_CopyOtherpanel.
It can indeed be resolved by using cm_CopyOtherpanel, but why is "tcfs2.exe /ef tcm(905)" effective?
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

yahuu
Попробуйте вызывать TCFS2-команду комбинацией клавиш с модификатором Alt или из кнопки при нажатом Alt. Команда тоже будет выполняться, как Alt+F5.
При выполнении команды cm_CopyOtherpanel клавиши-модификаторы игнорируются (в отличие от cm_Copy).
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

[mod="CaptainFlint"]Участнику yahuu выносится предупреждение за нарушение правил форума. Дальнейшие сообщения на английском языке будут удаляться, а продолжение игнорирования правил и модераторских предупреждений приведёт к блокировке аккаунта.[/mod]

[mod="CaptainFlint"]A warning is issued to the user yahuu for violating the forum rules. From now on the messages in English will be deleted. And ignoring the rules and moderator warnings will eventually lead to ban.[/mod]
Почему же, ё-моё, ты нигде не пишешь "ё"?
yahuu
Сообщения: 40
Зарегистрирован: Чт июн 22, 2023 07:32

Сообщение yahuu »

sa писал(а):yahuu
Попробуйте вызывать TCFS2-команду комбинацией клавиш с модификатором Alt или из кнопки при нажатом Alt. Команда тоже будет выполняться, как Alt+F5.
При выполнении команды cm_CopyOtherpanel клавиши-модификаторы игнорируются (в отличие от cm_Copy).
Большое спасибо

Posted after 5 minutes:
CaptainFlint писал(а):
Из-за того, что перевод с китайского на русский часто не передает смысл, я раньше использовал английский, но в будущем буду переводить на русский. Спасибо, что напомнили мне.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Версия Autorun 2.2.14.1 beta

Внеплановая версия из-за бага с падением в GetKnownFolderPath.

История изменений:

* обновлён немецкий перевод
* изменены некоторые языковые строки в autorun.lng
- StrReplace возвращала 0 вместо пустой строки при пустом параметре
- Tweaks: исправлена потеря фокуса окна TC при первом вызове ControlSetHint
+ функция IsNumber
- функция IsInt возвращала 1 для строки, не приводящейся к целому
- SysInfo: в GetKnownFolderPath исправлено падение TC (на x64, реже на x86)
+ поддержка установки путей c юникодом в CommandExec /CD
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback
Если файл ini сохранён в UTF-8 с BOM, то IniWrite не может найти первую секцию (очевидно, из-за BOM), и пишет её имя повторно, в конец файла. Вот эта программа такие ini создаёт, с BOM.
Amo ergo sum
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

yozhik
Функции Ini* используют API-функции *PrivateProfileString, которые поддерживают только ANSI и UTF-16. Любые другие кодировки для ini в контексте Windows можно считать самодеятельностью: сама программа может с ними работать, но никаких гарантий, что смогут другие.

Добавлю про это в примечаниях.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback
Добро, спасибо, будем знать. Добавить в примечания было бы, конечно, очень кстати. В целом, для таких самодеятельных случаев уже приспособлен ShellExec вкупе с sed'ом, так что упреждающего примечания вполне достаточно для того, чтобы не спотыкаться.
Amo ergo sum
Аватара пользователя
Monarch-LFV
Сообщения: 360
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

Подскажите пожалуйста, как с помощью функции FileSetAttr установить атрибут "скрытый" на все файлы *.br2 в папке TC?
Такая запись не работает (не воспринимает звездочку):

Код: Выделить всё

FileSetAttr("%COMMANDER_PATH%\*.br2", "H")
Работает только если указать конкретный файл, но у меня имена могут быть разные, хочется разом скрыть.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Monarch-LFV
В справке упоминается только "Имя объекта файловой системы", про * ничего не написано.

Если хочется просто убрать файлы *.br* из показа в папке TC, то можно указать в стиле оформления для папки %COMMANDER_PATH%\* в поле "Автозапуск команд:" например, такую последовательность: em_cd_no_br|cm_Wait 0,cd "*.*", с пользовательской командой

Код: Выделить всё

[em_cd_no_br]
cmd=cd *.*|*.br*
Аватара пользователя
Monarch-LFV
Сообщения: 360
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

sa
Все это замечательно, спасибо! Но это просто скрытие отображения в ТС. Мне же нужно сделать их именно скрытыми (атрибут), у меня есть решение с VBS скриптом (через Autorun погружается), но думал, что раз появилась такая опция в самом плагине, то почему-бы не воспользоваться.
Но ваше решение тоже крутое! Может кому-нибудь пригодится.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Monarch-LFV
Да, пока никаких средств поиска файлов не предусмотрено. Скорее всего, поиск в каком-то виде будет.
yahuu
Сообщения: 40
Зарегистрирован: Чт июн 22, 2023 07:32

Сообщение yahuu »

Код: Выделить всё

msgbox(ToDateTime("2024-10-22 19:00:00")-ToDateTime("2024-10-21 19:00:00")) # --> 86400000000
msgbox(Date('yyyy-MM-dd ',ToDateTime("2024-10-21 19:00:00")+86400000000)) # --> 2024-10-21
Почему результат будет 2024-10-21, а не 2024-10-22?
Как мне получить даты завтрашнего и послезавтрашнего дней?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

yahuu
Вы потеряли один ноль в числе: 86400000000, должно быть 864000000000:

Код: Выделить всё

msgbox(Date('yyyy-MM-dd ',ToDateTime("2024-10-21 19:00:00")+864000000000)) # --> 2024-10-22
Ответить