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 

Autorun
Goto page Previous  1, 2, 3 ... 153, 154, 155 ... 191, 192, 193  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Orion9



Joined: 01 Jan 2024
Posts: 786

Post (Separately) Posted: Thu Nov 21, 2024 19:29    Post subject: Reply with quote

sa
Значит у вас будет возможность оценить прикол с фоном! Smile Зажимаешь Ctrl - фон из ColorMania, отпускаешь - из буфера. Удобно и наглядно, а главное откаты не надо делать.) Только для других элементов меню пока так не сделано.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 786

Post (Separately) Posted: Fri Nov 22, 2024 13:43    Post subject: Reply with quote

Ну, вроде как доделал...)

jensoto
Знаю, что вы не кодер и вам непросто разобраться в этой скриптовой джамба-мамбе, но с плагином Autorun по-другому не получится. Чтобы им пользоваться в полной мере, придется немного изучить основы программирования и скриптинга. И все же это необязательно, если есть готовые решения! Поэтому я постарался, чтобы все было максимально в завершенном виде, готовом сразу к применению.

Требуются все последние обновления плагина, которые можно найти на предыдущих страницах темы, в частности Autorun_Process.dll и Autorun_Runtime.dll.

Отдельный файл конфигурации Backdrop.aucfg необходимо подключить к основной кофигурации плагина autorun.cfg строкой Pragma, например:
Code:
Pragma Include %COMMANDER_PATH%\Ini\Autorun\Backdrop.aucfg


Путь может быть любым. Содержимое файла:
 Backdrop.aucfg

На панели должно быть две кнопки: одна - для запуска отслеживания, другая - для выбора элемента из меню.

 Hidden text

 Hidden text

Клавиши-модификаторы для первой кнопки указаны в ее подсказке. При нажатии на первую кнопку запускается процесс слежения за буфером (проверка буфера 4 раза в секунду). Если в буфере находится десятичное число, оно применяется к цвету активного элемента, выбранного для слежения (этот элемент можно выбрать из меню второй кнопки). По-умолчанию при запуске первым элементом для отслеживания становится сам фон панелей, т.е. два его значения (фон1 и фон2), которые при равенстве делают фон однотонным. Чтобы пользоваться с комфортом, понадобится утилита ColorMania, в которой необходимо выбрать формат цвета "Powerbuilder". При удержании CTRL значения из ColorMania применяются к настройкам ТС в реальном времени. При отпускании CTRL - значения снова берутся из буфера. Это дает возможность примеривать цвета из ColorMania на лету оценивая результат, который не применится до тех пор, пока не будет нажата кнопка "Copy", копирующая значение ColorMania в буфер. Если что-то пойдет не так, есть пункт "Первоначальные значения секции [Colors]", который откроет редактор со значениями цветов, установленных во время запуска ТС. Можно просто скопировать в буфер нужно значение, и оно снова применится к настройкам.

Для удобства сохранения цветов фона есть отдельная панель, которую можно использовать в виде меню как третью кнопку. На панеле есть команда "Сохранить фон", которая, соответственно, сохраняет текущий фон панели и добавляет его к самой себе. Пример такой панели:

 Backdrops.bar

Чтобы все заработало, необходимо указать корректные пути к этой панели, утилите TCFS2 и AkelPad, которые, конечно, могут и будут отличаться от ваших. Делается это в заголовке (начале) файла Backdrop.aucfg.

Ну вот и все. Пользуйтесь на здоровье! )

 Disclaimer
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2693

Post (Separately) Posted: Fri Nov 22, 2024 15:46    Post subject: Reply with quote

Orion9 wrote:
Зажимаешь Ctrl - фон из ColorMania, отпускаешь - из буфера.
И правда, удобно!

На первый взгляд всё работает.
Может, имеет смысл отлавливать в буфере значение -1 для возврата к стандартному цвету?
При выборе цвета для курсора надо не забыть отключить в настройках "Системный стиль для курсора" (у кого используется).
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 786

Post (Separately) Posted: Fri Nov 22, 2024 18:07    Post subject: Reply with quote

sa wrote:
Может, имеет смысл отлавливать в буфере значение -1 для возврата к стандартному цвету?

Хорошая идея Smile Всего лишь нужно изменить строку:
Code:
if clip >= 0 and clip <= max and not (clip = last) then

И зменить ноль на -1. Само значение можно посылать в бУфер по-разному, например через кнопку. Код функции будет несложным - главное не забыть проверить, что отслеживание уже активно и проинформировать в обоих случаях:
Code:
Func SetDefaultColor()
   if BACKDROP_THREAD > 0 then
      ClipPut("-1")
      ShowBackHint("Установлен цвет по-умолчанию для " & CF_NAME)
   else
      ShowHint("Отслеживание цвета не запущено")
   endif   
EndFunc


Loopback
Прошло больше суток, как отключил WinScriptAdv, падений ТС больше пока не было. Но еще рано делать выводы, хотя, может быть, проблема была как-то связана с ним или даже тем багом в коде с установкой глобальной переменной некорректного значения, который заметил sa. Я сейчас посмотрю, к чему это могло привести, вполне возможно, что дело было как раз в этом.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2693

Post (Separately) Posted: Fri Nov 22, 2024 18:17    Post subject: Reply with quote

Orion9 wrote:
Само значение можно посылать в бУфер по-разному

Я предполагал копировать "-1" ручками из AkelPad с первоначальными значениями секции [Colors]: у меня там много их набирается. Smile


Last edited by sa on Fri Nov 22, 2024 19:55; edited 1 time in total
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 786

Post (Separately) Posted: Fri Nov 22, 2024 19:54    Post subject: Reply with quote

sa
Теперь понял, кажется ) Да, поэтому и пришлось сделать снимок секции перед первым запуском потока. Поначалу значения из ColorMania сразу применялись к настройкам ТС, из-за чего можно было легко накосячить, но трудно вернуть назад Smile Сейчас значения не применяются, пока не попадут в буфер, поэтому запуск потока не так опасен - по сути он просто крутится вхолостую, если в буфере нет необходимых значений.

Loopback
Отследить и воспроизвести ошибку оказалось не так просто. Я просто подумал, что команда:
Code:
Set /EV- TCFS2 "%COMMANDER_PATH%\Utilites\TCFS2\TCFS2.exe"

Меняла содержимое переменной, которая была завязана на ShellExecute и установку переменной окружения через SetEnv, которая, в свою очередь, была завязана на посылку сообщений окну ТС . Все это могло привести в последствии к неожиданным ошибкам, но поймать мне ничего не удалось. Ладно, посмотрим, что будет дальше.

Пара пожеланий. Помню, мы говорили, что неплохо было бы Autorun иметь собственное меню типа ShowPopup, которым можно было бы управлять по своему усмотрению, в частности напрямую вызывать внутренние и пользовательские функции с параметрами и т.п. Сейчас вызов через зарегистрированные коды стал удобнее, но есть ли в планах реализовать независимую функцию меню, не привязанную к формату mnu-файлов?

Уже не первый раз замечаю потребность напрямую создавать пустой файл из Autorun и писать в него что-нибудь. Возможно, сейчас и можно этого добиться через буфер и cmd, но хотелось бы иметь такую файловую функцию Smile
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1554

Post (Separately) Posted: Sat Nov 23, 2024 16:14    Post subject: Reply with quote

Orion9 wrote:
Отследить и воспроизвести ошибку оказалось не так просто.

Если это связано с Autorun, то учитывая что падение происходило в неактивном окне, искать скорее всего нужно в коде, который в фоне и выполняется. Т.е. в каком-то цикле, либо в функции RunThread, либо в основном скрипте.

Orion9 wrote:
Помню, мы говорили, что неплохо было бы Autorun иметь собственное меню типа ShowPopup, которым можно было бы управлять по своему усмотрению, в частности напрямую вызывать внутренние и пользовательские функции с параметрами и т.п. Сейчас вызов через зарегистрированные коды стал удобнее, но есть ли в планах реализовать независимую функцию меню, не привязанную к формату mnu-файлов?

Вроде что-то было, хотя точно не помню. Думаю не стоит рассчитывать на реализацию в скором будущем. Слишком много работы ради минимального профита, причём связанного исключительно с удобством. Есть поддержка bar, из которого можно вызвать зарегистрированную команду, и менять его можно быстро прямо средствами тотала.

Orion9 wrote:
потребность напрямую создавать пустой файл из Autorun

Всё в планах, но когда дойдет до реализации не знаю.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 786

Post (Separately) Posted: Sat Nov 23, 2024 20:11    Post subject: Reply with quote

Loopback
До меня только потом дошло, что там же еще двойная косая черта была, т.ч. тест мой был неполноценным. Ну и ладно. Уже два дня работает без проблем, а там видно будет. Просто не хочу сейчас еще раз заморачиваться, но вполне возможно причиной всему была вот эта строчка:
Code:
Set /EV- tcfs2 "%COMMANDER_PATH%\\Utilites\TCFS2\TCFS2.exe"

Эта переменная ипользовалась для установки переменных окружения и вызова в ShellExec. На нее были также завязаны и пользовательские команды из usercmd.ini, которые как раз и могли вызываться в фоне. Короче, фиг с ним. Впредь надо быть осторожнее Smile
Quote:
Слишком много работы ради минимального профита, причём связанного исключительно с удобством. Есть поддержка bar, из которого можно вызвать зарегистрированную команду, и менять его можно быстро прямо средствами тотала.

Иногда требуется создать меню динамически, когда не известно, что именно будет внутри и в каком количестве. Помимо этого через бар-файл можно послать сообщение лишь с двумя параметрами, да и вообще это не всегда удобно и только создает лишние цепочки. Хотелось бы из меню сразу вызывать функции, объявленные в Autorun, с любым количеством параметров и возможностью влиять на состояние самих пунктов меню - включен, выключен, доступен, недоступен, а также значки, если можно )
Back to top
View user's profile Send private message
Mrak_Tlen



Joined: 08 Oct 2024
Posts: 8

Post (Separately) Posted: Sat Nov 23, 2024 22:11    Post subject: Reply with quote

SetHotkeyAction /K:A /H:F3 , cm_SrcQuickview


Что я делаю не так? Не работает
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2693

Post (Separately) Posted: Sat Nov 23, 2024 22:32    Post subject: Reply with quote

Mrak_Tlen
Попробуйте так:
SetHotkeyAction /K:A /H:F3 SendCommand "cm_SrcQuickview"
Back to top
View user's profile Send private message
Mrak_Tlen



Joined: 08 Oct 2024
Posts: 8

Post (Separately) Posted: Sat Nov 23, 2024 22:37    Post subject: Reply with quote

SA

Спасибо.Так работает
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 786

Post (Separately) Posted: Sun Nov 24, 2024 14:29    Post subject: Reply with quote

Loopback
При вызове GetState в конце остается двойной перевод строки. Можно, конечно, убрать его средстави скрипта, но хотелось бы, чтобы сразу все возвращалось как надо.

Остановился пока на таком варианте кнопки "Autorun". Правый клик висит пока временно, как и многое остальное. Но уже неплохо и довольно удобно. Правда RestartScript мне таким образом не удалось заставить работать, но с ним я мало эксперементировал.

 Hidden text

Попутно обновил код кнопки "MediaInfo & AkelPad". Есть пара интересных моментов (может, кому-то пригодится в своих целях):

 Hidden text

Прикольное сочетание Alt+Ctrl+Shift. В следующий раз добавлю еще клавишу Win Mr. Green
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1554

Post (Separately) Posted: Sun Nov 24, 2024 21:51    Post subject: Reply with quote

Orion9 wrote:
Эта переменная ипользовалась для установки переменных окружения и вызова в ShellExec.

Вообще вряд ли что-то в Set может влиять, но кто знает.

А кстати, зачем её вообще использовать? Эта функция сейчас в некотором роде атавизм. Можно же просто записать:

Code:
tcfs2 = "%COMMANDER_PATH%\\Utilites\TCFS2\TCFS2.exe"


Orion9 wrote:
Хотелось бы из меню сразу вызывать функции, объявленные в Autorun, с любым количеством параметров и возможностью влиять на состояние самих пунктов меню - включен, выключен, доступен, недоступен, а также значки, если можно )

Это всё понятно. В принципе можно всё сильно упростить, если просто придумать кастомный формат меню и научить ShowPopupMenu его понимать. В любом случае значительно проще собрать структуру меню текстом (как сейчас можно собрать mnu-формат для передачи в ShowPopupMenu с переключателем /F), чем создавать поэлементно.

В общем в todo добавил, но никаких сроков.

Orion9 wrote:
При вызове GetState в конце остается двойной перевод строки. Можно, конечно, убрать его средстави скрипта, но хотелось бы, чтобы сразу все возвращалось как надо.

Ну да, прибавить при необходимости проще, чем отрезать. Уберу.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 786

Post (Separately) Posted: Mon Nov 25, 2024 01:20    Post subject: Reply with quote

Loopback
Ну и зверя же вы сделали! Играться с ним можно бесконечно Laughing Жаль, что в ближайшее время у меня не будет такой возможности, но оторваться и правда невозможно! )

И всё-таки я поймал рыбу своей мечты Mr. Green

 autorun.cfg


 [HintsCustomField]

Пришлось разбить на поля, поскольку юниты внутри поля оставляют пустоты. Заодно выяснил, что на один шаблон можно повесить только 30 полей. Но я думаю, больше и не надо, а то подсказка совсем за экран вылезет.

В общем, удержание Ctrl добавляет к подсказке данные из MediaInfo, а точнее первые 60 строк. Удержание Win+Ctrl добавляет с 50-ой строки. Нужна консольная утилита MediaInfo и последняя версия Autorun со всеми последними субплагинами. Результат мне очень понравился, хотя над форматом вывода еще можно работать и пробовать его улучшать.
Quote:
А кстати, зачем её вообще использовать? Эта функция сейчас в некотором роде атавизм. Можно же просто записать:

Да как-то упустил такое. А разве переменная не раскроется?
Quote:
В принципе можно всё сильно упростить, если просто придумать кастомный формат меню и научить ShowPopupMenu его понимать.

Можно и отдельную функцию сделать с другим именем. В моем понимании меню должно быть примерно таким:
https://www.autohotkey.com/docs/v2/lib/Menu.htm
Чисто визуально и по функционалу, а реализация все-равно от пользователя будет скрыта. Можно и тектом наполнять.

Забыл еще про GetState написать, что к библиотекам хотелось бы еще дату изменения файлов выводить. Не хватает, как мне показалось Smile
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1554

Post (Separately) Posted: Mon Nov 25, 2024 11:56    Post subject: Reply with quote

Orion9 wrote:
поскольку юниты внутри поля оставляют пустоты

В смысле?

Orion9 wrote:
Заодно выяснил, что на один шаблон можно повесить только 30 полей.

Еще и длина шаблона ограничена 1023 символами...

Orion9 wrote:
А разве переменная не раскроется?

Нет, конечно. Это же просто строка.

Orion9 wrote:
В моем понимании меню должно быть примерно таким:

В таком виде слишком много работы. Основное преимущество этого подхода - динамическое изменение элементов уже созданного меню, что для всплывающего меню не имеет смысла.

Orion9 wrote:
к библиотекам хотелось бы еще дату изменения файлов выводить

Не сказал бы, что это очень уж полезная информация для библиотеки. Тут скорее более полезной была бы дата сборки.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 153, 154, 155 ... 191, 192, 193  Next
Page 154 of 193

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group