Обсуждение темы "Обмен кнопками"

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

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

Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Kspeh
да, теперь блокнот запускается
Это хорошо. Думаю, задача у вас теперь запустилась, только скрипт из нее не выполняется. Можно еще раз зайти в пункт меню "Автообновление" и проверить, что минуты стали отсчитываться. Если да, то к Autorun и его установке больше претензий нет. Ошибка происходит в самом скрипте newsbar.aucfg в одной из этих двух строчек:
101: ProcessExecGetOutput uPassed %AutoHotKey% """%NewsAhk%"" -i"
или
117: ShellExec /SW_HIDE /WAIT:5000 %AutoHotKey% '"%NewsAhk%"'

Сейчас (чуть позже) буду разбираться.
А если прописываю полный путь
Можно так. Только полный путь должен быть в кавычках, если он содержит пробелы.

У вас путь к файлам отличается от \Ini\NewsBar\, судя по всему, вы его уже поменяли в строках:
Global NewsIni = %COMMANDER_PATH% & "\Ini\NewsBar\newsbar.ini"
Global NewsAhk = %COMMANDER_PATH% & "\Ini\NewsBar\newsbar.ahk"
Global NewsBar = %COMMANDER_PATH% & "\Ini\NewsBar\plug_news.bar"
на \Tools\NewsBar\, иначе было бы сообщение об отсутствующих файлах.
Kspeh
Сообщения: 26
Зарегистрирован: Сб апр 13, 2024 10:11

Сообщение Kspeh »

Можно так. Только полный путь должен быть в кавычках, если он содержит пробелы.
- да, это я в курсе.
Можно еще раз зайти в пункт меню "Автообновление" и проверить, что минуты стали отсчитываться.
- да, отсчитываются. В общем, осталось чуть-чуть. Ну и хорошо бы иметь возможность сквитировать те обновления, которые уже просмотрены.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Kspeh
Вспомнил, что с функцией ProcessExecGetOutput была небольшая проблема. Loopback внес некоторые исправления в последней версии плагина-дополнения Autorun_Process.dll
https://total.darkhost.ru/files/temp/au ... 240318.zip
Заодно скачайте и замените плагин-дополнение Autorun_Tweaks.dll
https://total.darkhost.ru/files/temp/tw ... 240418.zip
Так у вас будут все последние файлы. Просто перезапишите старые файлы .dll и .dll64 в папке \Autorun\Plugins и проверьте не ушла ли проблема.

С квитированием, это, конечно, сложнее. Я, кстати, не уверен, что это нужная фича для простой ленты. Но если найдется легкий и быстрый способ реализации, то подумать можно.
Kspeh
Сообщения: 26
Зарегистрирован: Сб апр 13, 2024 10:11

Сообщение Kspeh »

Orion9
- вот теперь вроде как всё работает. Через 151 минуту будет окончательно ясно. Но счётчик тикает, окна с ошибками не выскакивают. Кстати, я везде заменил AutoHotKey32 на 64. Спасибо, успехов Вам.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Kspeh
Рад, что все заработало! :D Теперь будем надеятся, что авторы регулярно будут радовать нас новыми версиями плагинов и утилит, не забывая пополнять наш любимый сайт wincmd.ru.)

Кстати, в скрипте newsbar.ahk есть один небольшой бонус. Строка 317:
;SendUserCommand("em_newsbar")
Если ее раскомментировать (т.е. убрать точку с запятой), то при появлении новых файлов на сайте, кроме стандартного извещения в центре уведомлений, будет посылаться пользовательская команда окну TC с именем em_newsbar.

Т.е. если создать в файле usercmd.ini пользовательскую команду em_newsbar, например:

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

[em_newsbar]
button=
cmd="%windir%\Media\Windows Notify Email.wav"
iconic=1
То будет проигрываться (дополнительно) wav-файл. Или, например:

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

[em_newsbar]
button=
cmd=OPENBARMENU %COMMANDER_PATH%\Ini\NewsBar\plug_news.bar
param=
iconic=1
Откроется панель (правда не в том месте).
Команды можно сочетать и объединять:

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

[em_newsbar]
button=
cmd=em_newsbar_wav, em_open_newsbar
iconic=1
[em_newsbar_wav]
button=
cmd="%windir%\Media\Windows Notify Email.wav"
iconic=1
[em_open_newsbar]
button=
cmd=OPENBARMENU %COMMANDER_PATH%\Ini\NewsBar\plug_news.bar
param=
iconic=1
Да и вообще можно использовать любые команды, какие только захочется :wink:
Kspeh
Сообщения: 26
Зарегистрирован: Сб апр 13, 2024 10:11

Сообщение Kspeh »

Orion9
- скажите, счётчик тикает только тогда, когда тотал запущен? А когда закрыт - останавливается? У меня вроде так работает. Сейчас запустил - будет обновление через 19 минут.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Kspeh
Да, примерно так. Были с этим кое-какие проблемы, поскольку процессов TOTALCMD.EXE или TOTALCMD64.EXE можно запустить несколько и надо было как-то это учесть. В итоге, остановился на варианте, что когда время последней проверки превышает отведенный лимит, следующая проверка будет не сразу при запуске ТС, а с некоторой задержкой - 20 минут. Не знаю, насколько это правильно, но если что, все это можно поменять в .aucfg файле, строчка 104: uPassed = uInterval - 20 (сделать интервал меньше, например).
[cut]Поскольку вам удалось пройти все сложности установки и настройки плагина Autorun, и раз у вас работает, быть может, вам будет интересен еще один скрипт, который я не так давно делал. Только добавьте в панели Menu.bar к последним пунктам какие-нибудь несуществующие команды, например "em_em", иначе эти пункты могут не отобразаиться Перенесите bar-файл на главную панель инструментов и отредактируйте его там.[/cut]
Kspeh
Сообщения: 26
Зарегистрирован: Сб апр 13, 2024 10:11

Сообщение Kspeh »

Orion9
- вдруг выскочило вот это:
Изображение[/img]
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Kspeh
Это странная ошибка. Сейчас не могу в полной мере заняться поисками ее причины, но вы загляните в лог, не было ли там других ошибок, предшествующих этой.
Как временное решение можете добавить "try" к этой строке, чтобы скрипт не останавливался и не показывал это сообщение, т.е. должно быть:

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

       try SendMessage(0x433,2945,,,"ahk_class TTOTAL_CMD")
P.s. А у вас сколько окон ТС было открыто в этот момент, и сама кнопка поменяла свой статус после перезагрузки? По идее, если была ошибка, она должна была стать красной.
Kspeh
Сообщения: 26
Зарегистрирован: Сб апр 13, 2024 10:11

Сообщение Kspeh »

Orion9
- не обратил внимание. Мне вообще помнится (но не уверен) что Тотал был закрыт.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Kspeh
А как с закрытым Тоталом скрипт мог запуститься? :? Но это, кстати, объясняет ошибку. Там посылается команда окну ТС, чтобы он обновил значки на панели, но поскольку окно не может быть найдено, возникает эта ошибка. По идее, там сразу надо было ставить "try", и это упущение с моей стороны. Единственная причина по которой я этого не сделал - скрипт не может быть запущен не из Тотала, а значит окно в любом случае будет найдено. Но раз у вас сошлись такие условия, выходит, что они вполне реальны и в скрипте где-то есть недоработка. Правда у меня за месяц использования ни разу не было такой ошибки, а значит и отладить ее будет сложнее до тех пор, пока она у меня не воспроизведется. Но, думаю, оператора "try" должно хватить на первое время.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Kspeh
Кажется, отловил что-то подобное:
Строка: 313|Ошибка: (5) Отказано в доступе.
Я редко открываю больше одного ТС, но здесь специально решил оставить посмотреть. Думаю, в скрипте есть существенная недоработка, т.к. не учтено, что он (скрипт), запущенный без прав администратора, может послылать сообщение окну ТС с повышенными правами, что, судя по всему, и приводит к вышеуказанной ошибке. И Try лишь частично решает эту проблему.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Orion9
Кнопка рабочая, но: ... так еще на выходе получил

Собственно, примерно это и указано в подсказке к кнопке.
Вот тут, шаблон из MRT и пригодится (чтобы убрать "хвост" ##X.X.X...): Найти: ##* Заменить на: <Пусто> .
Напихал в маску для имени побольше точек, чтобы не было проблем с именами папок для слияния, в которых много точек.
Ну и новая папку сразу заметна в панели. :D
Если точек в именах папок заведомо нет, то достаточно такой строки параметров: /O5G0T="%Q%P%N:~0,25.*"
Последний раз редактировалось sa Пн июл 01, 2024 10:05, всего редактировалось 1 раз.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

sa
Все-равно страшно наблюдать, как исчезают папки на глазах и остается лишь одно имя с хвостом :lol:

Но кнопка норм, если приходится часто делать слияние. В остальных случаях уж лучше стандартные Ctrl+B, Ctrl+A и F6 - дают больше иллюзии контроля :lol:
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Orion9 писал(а):уж лучше стандартные Ctrl+B, Ctrl+A и F6
А разве этот способ подойдёт для случая, когда в папках для слияния имеются дочерние папки?
Ответить