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 ... , 212, 213, 214  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: 938

Post (Separately) Posted: Fri Nov 07, 2025 20:36    Post subject: Reply with quote

A55555 wrote:
Можно ли добавить к этому поиску такую фишку, чтоб "http://" торрента-файла по которому ты только что искал файлы сразу попадала в буфер обмена?

Многое будет зависить от того, есть ли такая ссылка в файле, но попробовать можно. Модуль с изменениями:

 Torrent.aucfg

Сейчас если ссылки нет в поле "PublisherURL", она ищется в поле "Comment". Если и в поле "Comment" ничего нет, то в буфер копируется текст "[No valid URL]" с именем файла. Информация в буфер попадает только после нажатия Alt+Win+T. Эта комбинация показывает подсказку о последнем запущенном torrent файле и копирует ссылку в буфер. Посмотрите, как вам такой вариант.

Loopback
Мысль посетила. Раз уж объект List корректно загружает файл в любой кодировке, то может ему и поле добавить "CodePage", где будут сведения о такой кодировке?
Back to top
View user's profile Send private message
A55555



Joined: 06 Feb 2011
Posts: 68

Post (Separately) Posted: Sat Nov 08, 2025 01:48    Post subject: Reply with quote

Orion9 wrote:

Многое будет зависить от того, есть ли такая ссылка в файле, но попробовать можно. Модуль с изменениями:
 Torrent.aucfg

Сейчас если ссылки нет в поле "PublisherURL", она ищется в поле "Comment". Если и в поле "Comment" ничего нет, то в буфер копируется текст "[No valid URL]" с именем файла. Информация в буфер попадает только после нажатия Alt+Win+T. Эта комбинация показывает подсказку о последнем запущенном torrent файле и копирует ссылку в буфер. Посмотрите, как вам такой вариант.

Спасибо. Работает. Буду стабильность тестировать.
В поле "PublisherURL" в моих торрент-файлах или ничего нет или ссылка на страницу профиля релизера.
Сссылки на страницу раздачи у меня все в "Comment".
Работает, но получается копирует то что нужно только в случае, если "PublisherURL" пусто (а это редкость). Начинать, как мне кажется, нужно с поля "Comment", а потом уже "PublisherURL".

Если есть возможность сделать, именно для себя костыль, копирование в буфер по умолчанию (без нажатия горячих клавишь), подскажете пожалуйста.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1645

Post (Separately) Posted: Sat Nov 08, 2025 12:57    Post subject: Reply with quote

Orion9 wrote:
А почему потоки, запускаемые из кнопок и горячих клавиш, не отображаются в GetState?

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

Orion9 wrote:
Ведь эти функции тоже в отдельных потоках запускаются, верно?

Если из кнопок, зарегистрированных с RegisterCommand - то нет, они выполняются в том же потоке. В CSMA/SHA по умолчанию (без ключа /S) - в отдельном, так исторически сложилось.

По остальному прокомментировать нечего, пока не доберусь до тестирования.

Orion9 wrote:
Раз уж объект List корректно загружает файл в любой кодировке, то может ему и поле добавить "CodePage", где будут сведения о такой кодировке?

В принципе сейчас список нейтрален в смысле кодировки, хотелось бы его таким и оставить. И одной кодировкой тут не обойдёшься, придется хранить и информацию о BOM. Учитывая, что кодировка применима только к файловым функциям, не хотелось бы загромождать объект лишними свойствами. В общем тут надо думать.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Sat Nov 08, 2025 13:50    Post subject: Reply with quote

A55555
Я понял. Весь файл нет смысла скидывать, поменяйте просто заголовок и несколько строк в функции.

Было:
Code:
Global gTorrentDbg = 0, gDbgStep, gCapsReverse = 0, gTorrentUrl, gTorrentLog
Global gTorrentSize = 0, gTorrentCount = 0, gDriveInclude = "e:\;f:\;g:\;h:\;i:\;j:\"

Стало:
Code:
Global gTorrentDbg = 0, gDbgStep, gCapsReverse = 0
Global gTorrentLog, gTorrentUrl, gTorrentUrlClip = 1
Global gTorrentSize = 0, gTorrentCount = 0, gDriveInclude = "e:\;f:\;g:\;h:\;i:\;j:\"

Было:
Code:
gTorrentLog = StrTrim(gTorrentLog)
If Not StrPos(gTorrentUrl, "http") Then gTorrentUrl = sComm
If Not StrPos(gTorrentUrl, "http") Then gTorrentUrl = "[No valid URL] " & FileGetName(TorrFile)

Стало:
Code:
gTorrentLog = StrTrim(gTorrentLog)
If StrPos(sComm, "http") Then
   gTorrentUrl = sComm
Else
   If Not StrPos(gTorrentUrl, "http") Then gTorrentUrl = "[No valid URL] " & FileGetName(TorrFile)   
EndIf
If gTorrentUrlClip Then ClipPut(gTorrentUrl)


Loopback
Да, я забыл, что у Autorun есть проблемы с субплагинами и статистикой, но вопрос стоит по-прежнему остро: какой смысл в GetState("threads"), который ничего не показывает? К примеру, я запускаю несколько потоков через кнопки, а вижу только "Main". И зря вы так про менеджер. Задача менеджера как раз в том, чтобы показывать все потоки, даже те, которые запускаются на доли секунды.

Loopback wrote:
В общем тут надо думать.

Надо, наверное. Иначе путаница получается. Или придётся самостоятельно следить за маркером. Пока добавил условие:
Code:
Local bom = FileRead(gHBarFile, 2, "RAW")
If ERROR = 1 Then
   gHBarLoadError = 1
   gHBarCP = "Unknown"       
   Return
EndIf   
If bom = "FFFE" Then
   gHBarCP = "UTF-16"
Else
   gHBarCP = "ANSI"
EndIf

Вроде работает. Но я смотрю у Гислера юникодная панель даже без маркера открывается, видимо он реализовал какой-то простенький алгоритм для этого типа проверки на нулевой байт или что-то в этом роде. Посмотрю, в общем, как лучше сделать. Одно радует: ни в UTF-8, ни в UTF-16 BE тотал панели не открывает, именно поэтому стоит проверка только на FFFE.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Sun Nov 09, 2025 00:40    Post subject: Reply with quote

Loopback
Свойство делать необязательно, можно через макрос EXTENDED возвращать кодовую страницу, в которой загрузился файл в список.

Пока еще добавил проверку через маркер панели в UTF-16:
Code:
Local utf = "5B0042007500740074006F006E006200610072005D000D000A00"

Но это мелочи. Более крупные изменения затронули оконную процедуру. В прошлом виде она имела серьезные недостатки, например не кликались с первого раза кнопки с модификатором Ctrl. Пришлось отказаться от получения координат через MouseGetPos т.к. она нарушала работу DragDetect. А также пришлось добавить дополнительный вызов оригинальной гислеровской процедуры для правильной эмуляции нажатия:
Code:
DllCall("CallWindowProcW", _
   "ptr", gHBarWndProc, "hwnd", hWnd, "uint", uMsg, "wparam", wParam, "lparam", lParam)
DllCall("CallWindowProcW", _
   "ptr", gHBarWndProc, "hwnd", hWnd, "uint", WM_LBUTTONUP, "wparam", wParam, "lparam", lParam)
Return 0

Ну, добавил еще один путь для поиска временно-загруженной панели через GetCurrentPath(). Была идея указания пути через буфер или через поиск истории в ini, но пока мне это не нужно. У меня все панели храняться в \Bars и другого не предвидется. В общем, это последняя и довольно стабильная (проверял на разных панелях, кодировках и путях) версия модуля. Но если будете пользоваться (кому это фича интересна), обязательно делайте резервные копии. За порчу ваших панелей я не отвечаю )

 Hidden text

Критерий работоспособности функционала определить просто: если при наведении указателя мыши на последнюю кнопку панели с клавишей Ctrl информация в подсказке о ней отображается правильно, то значит и dragndrop на панели тоже будет работать правильно.
Back to top
View user's profile Send private message
Mrak_Tlen



Joined: 08 Oct 2024
Posts: 21

Post (Separately) Posted: Sun Nov 09, 2025 18:39    Post subject: Reply with quote

Добре
# На среднюю кнопку мыши - ком строка поле ввода вешаю меню TCDirMenu из TWinKey
Code:
ControlSetMouseAction /M 20 CommandExec em_CMD-20


где
[em_CMD-20]
cmd=cm_FocusCmdLine,em_tcdirmenu
[em_tcdirmenu]
cmd=%AHK1% %COMMANDER_PATH%\Plugins\wdx\TWinKey\tcdirmenu.ahk

Ахк это тупо нажатие Альт+1
tcdirmenu.ahk
Send, !1

Такое ощущение, что я нагромоздил лишнего )))

З.Ы. оказывается когда речь о поле ввода(№20 на скриншоте справки авторана), то отрабатывает оно не на панели ввода, а на маленькой стрелочке последних команд. Не сразу понял что не так и почему 1я строка моего сообщения не работает, а она то работает, но есть нюанс )))
Back to top
View user's profile Send private message
A55555



Joined: 06 Feb 2011
Posts: 68

Post (Separately) Posted: Sun Nov 09, 2025 22:39    Post subject: Reply with quote

Orion9
спасибо большое. Работает.
Зависаний пока не было и ощущение, что 70504 быстрее стало работать.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Mon Nov 10, 2025 00:32    Post subject: Reply with quote

Mrak_Tlen
Если у вас x64, то проблема может быть в плавающем Id контролов, которая иногда появляется в этой версии. Как-то затрагивали эту тему.

A55555
Рад, что все получилось как нужно.

Я тут обновил код подсказки, попробуйте, если интересно. Только старую функцию вам нужно будет удалить, чтобы не было проблем с дулирующими именами. Я еще буду пересматривать код, но общие черты не поменяются:

 Hidden text


 MediaInfo.aucfg

Двойной клик закрывает подсказку, правый клик показывает лог. Если gDurationBaloon = 0, то будет отображаться старая подсказка.
Back to top
View user's profile Send private message
Mrak_Tlen



Joined: 08 Oct 2024
Posts: 21

Post (Separately) Posted: Mon Nov 10, 2025 01:02    Post subject: Reply with quote

Если x64, то проблема может быть

Да, 64. Это не проблема, даже наверное хорошо, перевесил на правую кнопку мыши, что эргономичнее, просто пока отдуплил почему не работает... хорошо, что теперь понятно.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Mon Nov 10, 2025 13:37    Post subject: Reply with quote

Mrak_Tlen
Я просто не успел вчера проверить. Подумал, что это связано с проблемой, с которой сам ранее столкунулся, когда делал вращение иконки a.k.a вентилятор Гислера
 Hidden text

В ТС х64 вентилятор может плавать куда ему вздумается еще и черный квадрат за собой оставляет
 Hidden text

Недавно уже писал, что в ТС х64 графический объект не всегда загружается, наверное чернота с этим связана. Но от идеи вращения пришлось отказаться не по этой причине. Оказалось, что эта иконка также зависает, как и другие более пригодные для этого элементы.

А по командной строке все нормально кликается (в конце на гифке видно), только целиться надо выше поля редактирования, что крайне не удобно. Для теста я использовал такой код:
 Hidden text

Будем надеяться, в будущих версиях Loopback сделает собственную посылку клавиш и не придется вызывать сторонние скрипты для этого.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1645

Post (Separately) Posted: Mon Nov 10, 2025 13:45    Post subject: Reply with quote

Orion9 wrote:
Свойство делать необязательно, можно через макрос EXTENDED возвращать кодовую страницу, в которой загрузился файл в список.

Методы объектов не могут возвращать extended. Да и если бы могли, это число, а кроме кодировки надо еще возвращать признак BOM, это важно. Нет, ну понятно, что можно задействовать старший разряд, но неудобно, и напрямую параметром в метод записи не передать.

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



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Mon Nov 10, 2025 19:08    Post subject: Reply with quote

Loopback
Ну в общем-то это необязательно. Пользователю всё-равно придется следить за тем, в какой кодировке открывается файл, с которым он работает. А вот про потоки хотелось бы поподробнее. Например, для Autohotkey есть описание как все устроено. В английской справке, конечно, получше, чем в этой, но все же.

Касаемо Autorun, не совсем понятно, что именно происходит при запуске длительных операций из нескольких кнопок. Как осуществляется многозадачность? Тоталу отсылается номер зарегистрированной команды и адрес привязанной функции, а он уже сам дальше ее крутит? Крутит в своем отдельно созданном для этого потоке?
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Tue Nov 11, 2025 09:20    Post subject: Reply with quote

Очередной видосик
 Hidden text

Остальное чуть позже.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Tue Nov 11, 2025 14:11    Post subject: Reply with quote

Практически полностью автономный модуль со всеми последними обновлениями:
 MediaInfo.aucfg

К сожалению, полностью автономным этот модуль сделать нельзя, т.к. в файле основной конфигурации должны быть прописаны поля и объявлены переменные:
 autorun.cfg

С полями понятно: они должны быть прописаны первой строкой конфигурации, как требует Autorun. Глобальные переменные желательно объявлять следом или как можно скорее, поскольку при старте ТС плагин начинает вызывать функцию MediaHint, которая использует эти переменные для своей работы. Но если эти переменные еще не инициализированны (например, если подключено несколько модулей), то при старте ТС возникнет соответствующая ошибка.

Переменные отвечают за параметры подсказки - на сколько процентов делить панель и какие шаблоны для этого использовать. Подробнее здесь.

Шаблоны остались теми же. Я только добавил к size.txt пару дополнительных полей:
 size.txt

Но можно сделать и свои шаблоны в зависимости от задач и целей.
Комбинация Alt+F12 переключает все поля подсказки. Т.е. на лету происходит переключение между этим:
 Hidden text

И этим:
 Hidden text

Меняется функция полей данных. В модуле присутствует функция ExifHint, которая выводит сведения из exiftool.exe, нужно только указать путь в заголовке, как и путь к библиотекам MediaInfo. При возможности можно добавить другие функции для вывода данных в поля Autorun, чтобы переключать их налету, расширяя функционал.

A55555
Если будете подключать модуль, не забудьте заменить первую строку - имя функции теперь другое.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 938

Post (Separately) Posted: Tue Nov 11, 2025 20:39    Post subject: Reply with quote

Как-то я увлёкся описанием MediaHint, что совсем забыл про функции Duration и MediaInfoTest. Кнопка на Duration теперь выглядит так:

 Hidden text

CapsLock больше нет. Shift позволяет отключить фильтр расширений, указанных в заголовке модуля. По умолчанию фильтр включен, т.к. он ускоряет операцию подсчета, поскольку MediaInfo не приходится открывать каждый файл в каталоге. Но бывают случаи, когда нужно обработать все файлы. Если файл не содержит сведений о времени воспроизведения, в лог заносится "Empty".

Иногда при отключенном фильтре текстовые файлы субтитров могут возвращать информацию о времени воспроизведения. Не уверен, что это правильно, хотя это, видимо, кому-то требуется. В режиме MediaInfo.dll такие файлы в расчет не принимаются, в лог записывается "Warning". Но если по какой-то причине нужно посчитать длительность таких файлов, можно использовать режим плагина TCMediaInfo.wdx через запуск с Alt.

Лог сохраняется во временный каталог, но только при его открытии, во время следующей сессии он перезаписывается.

Кнопка MediaInfoTest только для теста, но может выводить информацию в режиме "Inform".
 Hidden text

Если нужно сделать подсказку с выборочными полями из MediaInfo.dll, можно использовать эту кнопку как заготовку.

Подсказку в стиле BaloonTip можно использовать в других целях, но без внесения изменений не обойтись. Отдельная кнопка для теста кода и его адаптации, если кому-то вдруг потребуется:
 Hidden text

 Hidden text

 Hidden text

P.s.

Эх маэстро маэстро... Ну почему нельзя было сразу так сделать? Сколько же драгоценных часов я потерял, пытаясь найти нужный для себя цвет фона Mr. Green

 Hidden text
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 ... , 212, 213, 214  Next
Page 213 of 214

 
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