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 ... 167, 168, 169 ... 171, 172, 173  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
AkulaBig



Joined: 03 Dec 2008
Posts: 186

Post (Separately) Posted: Wed Jan 22, 2025 19:00    Post subject: Reply with quote

Orion9 wrote:

А если попробовать команды:

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



Joined: 01 Jan 2024
Posts: 632

Post (Separately) Posted: Thu Jan 23, 2025 13:46    Post subject: Reply with quote

AkulaBig wrote:
При этом язык колонок меняется. А вот описание не меняется.

Если Тотал один раз считывает ключ Titles из секции [CustomFields] и больше не перечитывает его в ходе своей работы, то всё - "труба". Это и есть то самое "страшное", что должно было рано или поздно случиться, и то почему так нужна команда повторного перечитывания всей конфигурации. Иначе придется просить Гислера каждый раз, чтобы он добавлял всё новые и новые команды для перечитывания тех или иных секций по мере возникающих потребностей, как это было сделано с расцветкой или перечитыванием значков, похоже.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 186

Post (Separately) Posted: Thu Jan 23, 2025 18:25    Post subject: Reply with quote

Orion9 wrote:
так нужна команда повторного перечитывания всей конфигурации.

Ну он-же ответил, что такую команду сделать невозможно.
Многие его просили.
Orion9 wrote:
Если Тотал один раз считывает ключ Titles из секции [CustomFields] и больше не перечитывает его в ходе своей работы, то всё - "труба".

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



Joined: 03 Dec 2008
Posts: 186

Post (Separately) Posted: Thu Jan 23, 2025 21:54    Post subject: Reply with quote

Сделал перезагрузку ТС при смене языка. Можете посмотреть, что получилось. При смене языка через стандартный диалог появится запрос на перезагрузку ТС.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 632

Post (Separately) Posted: Fri Jan 24, 2025 00:19    Post subject: Reply with quote

AkulaBig wrote:
Ну он-же ответил, что такую команду сделать невозможно.
Многие его просили.

Прямо-таки невозможно?

Как говорила Сара Коннор: "Пока есть процессор, память и система ввода-вывода — возможно всё." Mr. Green

Другое дело, если код слишком запутан и никогда не предусматривал своего повторения, тогда и ломать придется всё под корень, чего Гислер, разумеется, делать не будет.
AkulaBig wrote:
Я так и думал, что этим закончится... Но я оставлю уже отработанный алгоритм.

Ничего страшного не случилось. Стандартные наборы колонок язык меняют, а значит и шансы есть, что переключение никогда не произойдет во время пользовательских колонок. А цикл, который у вас крутится, все-равно вам еще пригодится.
AkulaBig wrote:
Сделал перезагрузку ТС при смене языка. Можете посмотреть, что получилось.

Посмотрю при первой возможности. Но использовать диалог, имхо, очень хорошее решение. Однако если вы используете MsgBox для этого, то, к сожалению, нужно помнить, что она не всегда срабатывает в TC x64. Сам с таким сталкивался.

P.s. А еще можно попробовать следить за наборами колонок, т.е. проверять их при переключении: если на панелях нет пользовательских наборов, можно и не запрашивать перезагрузку.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 186

Post (Separately) Posted: Fri Jan 24, 2025 06:12    Post subject: Reply with quote

Orion9 wrote:
если вы используете MsgBox для этого, то, к сожалению, нужно помнить, что она не всегда срабатывает в TC x64. Сам с таким сталкивался.

Я думал имеется ввиду, что если он срабатывает в данном коде, то будет срабатывать всегда. То-есть есть вероятность, что он то сработает, то не сработает? А чем тогда MsgBox можно заменить? Я ведь задействовал его ответы.
Orion9 wrote:
еще можно попробовать следить за наборами колонок, т.е. проверять их при переключении: если на панелях нет пользовательских наборов, можно и не запрашивать перезагрузку.

Основная проблема не в колонках. Их хоть и криво, но обновить можно. А вот список колонок никак не обновишь. Да и далее надо будет и утильки переключать и т.д. Так что к необходимости перезагрузки я давно был готов. Просто пока получалось без этого, не задействовал перезагрузку.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 186

Post (Separately) Posted: Fri Jan 24, 2025 17:28    Post subject: Reply with quote

Как чувствовал, что подведет меня этот vbs. Помимо того, что его движок не установлен в оськах типа PE, он еще и юникод не поддерживает. А для использования сборки ТС в английской Винде требуется перекодировать инишники и т.д. в юникод, чтобы не показывало крякозябры. Так что, как я ранее писал, не самый плохой вариант таскать движок с собой. Буду переделывать на au3. Ну а потом может буду экзешники делать. Нормальное решение вопроса.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 632

Post (Separately) Posted: Sat Jan 25, 2025 00:05    Post subject: Reply with quote

AkulaBig wrote:
Я думал имеется ввиду, что если он срабатывает в данном коде, то будет срабатывать всегда.

Да, я тоже так думал (и всё ещё думаю), но лучше уточнить у Loopback. Просто я ТС х64 не часто использую, чтобы можно было сказать с уверенностью.
AkulaBig wrote:
А чем тогда MsgBox можно заменить?

Наверное, вызовом из AutoIt. Но зачем спешить — ведь всё работает. Я у себя тоже проверил.
AkulaBig wrote:
Основная проблема не в колонках.

Моя ошибка. Речь действительно шла о названиях наборов и пунктах меню, а не о колонках. Вообще, довольно курьёзно смотрится, когда часть меню на русском, а часть на английском, но Гислера понять можно. Всё, что вводит пользователь и сохраняет в ТС через диалоговые окна, делается на одном языке, поэтому при переключении на другой язык, данным взяться больше неоткуда — они остаются "как есть". Выход один — делать дополнительный языковой файл и хранить в нём данные пользователя, начиная от меню "Запуск" и заканчивая наборами колонок. А пользователь пусть сам следить за содержимым этих файлов.
AkulaBig wrote:
Как чувствовал, что подведет меня этот vbs.

Да ладно, зато размялись неплохо )) И скрипт теперь лежит у меня в коллекции и даже полезную роль выполняет.) Кстати, заметил, что вы добавили TCASwitcher к сборке. На мой взгляд, лучше стало. Главное ведь, ничего не пострадало и не потерялось, наоборот — пользователь приобрел возможность переключать ассоциации. Почему бы и дальше не развить эту тему и "дожать" IrfanView?
 Associations.ini

Попробуйте такой вариант, может "зайдет".) В случае чего, к старому всегда можете вернуться. Но такие "портабельные" ассоциации очень хорошо смотрятся на различных РЕ и чистых Windows, когда все значки и связи в ТС остаются на месте.
AkulaBig wrote:
Помимо того, что его движок не установлен в оськах типа PE, он еще и юникод не поддерживает.

Может, я чего-то не понимаю, но как это не поддерживает? Если vbs-файл сохранить в UTF-16, то юникодные символы в MsgBox отображаются нормально:
Code:
MsgBox "Michel Teló - Ai Se Eu Te Pego", vbOKOnly, "Unicode"

 P.S.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 186

Post (Separately) Posted: Sat Jan 25, 2025 08:30    Post subject: Reply with quote

Orion9 wrote:

Наверное, вызовом из AutoIt.

Это понятно. Но тогда придется писать кучу кода, заменяющего отслеживание нажатия клавиш MsgBox. Сейчас-то я в Autorun это делаю и очень удобно. В общем пока работает, трогать не буду.
Orion9 wrote:

И скрипт теперь лежит у меня в коллекции и даже полезную роль выполняет.)

Теперь еще и на au3 можете в архив добавить. Будет тоже самое делать Smile Я решил не делать экзешники. Так что скрипт в текстовом виде выложен.
Orion9 wrote:

заметил, что вы добавили TCASwitcher к сборке. На мой взгляд, лучше стало.

Ну вы объяснили, для чего это надо. Я согласился. Периодически я добавляю, что кто-нибудь просит, хотя сам я этим не пользуюсь. Главное, чтобы это не жирное было. Я ведь разобрался до конца с MPC и с его клоном. Оказывается даже при наличии возможности подключения внешних кодеков, в них все-равно есть вшитые кодеки. Соответственно надо смотреть, можно-ли на внешние LAV натравить внутренний плеер ТС. Тогда можно подумать о плагине. А так не мой вариант, делать масло масляным.
Orion9 wrote:

Почему бы и дальше не развить эту тему и "дожать" IrfanView?

Я чего-то не понимаю, что-ли? У меня ведь и так у расширений, поддерживаемых Ирфаном разные иконки для каждого файла. Зачем ассоциировать каждое расширение отдельно?
Orion9 wrote:

Но такие "портабельные" ассоциации очень хорошо смотрятся на различных РЕ и чистых Windows, когда все значки и связи в ТС остаются на месте.

Хм, у меня так и сделано. Чего-то я недопонимаю.
Orion9 wrote:

Может, я чего-то не понимаю, но как это не поддерживает? Если vbs-файл сохранить в UTF-16, то юникодные символы в MsgBox отображаются нормально

А теперь перекодируйте DirMenu.ini в юникод (иначе на англоязычной Винде будут крякозябры) и попробуйте обработать его скриптом на vbs. Увидите, что получится. То-есть vbs не работает с юникодными файлами. Это важно. Кстати, если вы скачали сборку, в которой еще нет скрипта на au3, выложите под кат DirMenu.ini, если не трудно. Я при написании скрипта на au3 испортил его. Восстановил, но возможно не полностью.
Orion9 wrote:

Там у вас, кажется, забавная опечатка получилась с "preload", или это так задумано?

Опечатка. Потому что на русском написано "презагрузить". Букву пропустил. Заметил, что странный перевод, но не до него было.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 632

Post (Separately) Posted: Sat Jan 25, 2025 14:12    Post subject: Reply with quote

AkulaBig wrote:
Но тогда придется писать кучу кода, заменяющего отслеживание нажатия клавиш MsgBox.

Имелось в виду, что можно перезагрузить процесс ТС из самого AutoIt-скрипта, но согласен, что:
AkulaBig wrote:
Сейчас-то я в Autorun это делаю и очень удобно.

Из самого Autorun это гораздо удобнее.
AkulaBig wrote:
Теперь еще и на au3 можете в архив добавить.

Посмотрим )
AkulaBig wrote:
Я ведь разобрался до конца с MPC

Я затронул эту тему только потому, что по ошибке подумал, что MPC-BE это что-то "небольшое, портабельное и то, что работает на внешних LAV-кодеках". Поскольку Гислер занялся своим плеером, который к счастью у него не так много места занимает, но которому также требуются внешние LAV-кодеки для обеспечения портабельности, то я и подумал, что альтернатива в виде плагина MPC-BE была бы достаточно интересной и перспективной идеей, а может быть даже и полноценной заменой внутреннему плееру. Ведь есть хороший плагин MMedia, которым я, кстати, до сих пор пользуюсь, но он уже "как бы" устарел и завязан на системные кодеки, а хотелось бы чего-то такого же, но только портабельного. В принципе, размер тут не помеха (каталог MPC-BE занимает ~ 40Mb), но кто станет считать лишние мегабайты, если вопрос заключается в полной работоспособности и полной портабельности. Кстати, сделал разметку mpciconlib.dll от MPC-BE, если кому-то будет интересно попробовать:
 Hidden text

AkulaBig wrote:
У меня ведь и так у расширений, поддерживаемых Ирфаном разные иконки для каждого файла. Зачем ассоциировать каждое расширение отдельно?

У вас разные иконки, потому что ассоциации прописаны в системе. Если извлечь папку TotalCommanderPortable из вашего установщика на "голую" систему, никаких иконок IrfanView там, конечно, не будет. Можете провести такой тест: подмените файл %COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\Plugins\Icons.dll на любой другой, содержащий иконки, и посмотрите, как переключаются внутренние и внешние ассоциации. А еще лучше - скопируйте библиотеку Icons.dll в другое место и поменяйте к ней путь в файле Associations.ini из предыдущего поста - тогда вы точно увидете разницу.
AkulaBig wrote:
А теперь перекодируйте DirMenu.ini в юникод

Всё зависит от кодировки. Например, UTF-8 работать не будет, но UTF-16 LE должна:
https://script-coding.com/WSH/FileSystemObject.html#3.24.
Соответственно, в коде надо будет тоже это учитывать:
Code:
Text = CreateObject("Scripting.FileSystemObject").OpenTextFile(ini, 1, false, -1).ReadAll

With CreateObject("Scripting.FileSystemObject")
   .OpenTextFile(ini, 2,, -1).Write Text
   .OpenTextFile(ini, 1,, -1).Close
End With

Заморочисто всё как-то получается: это учитывать надо, то учитывать надо...
AkulaBig wrote:
Кстати, если вы скачали сборку, в которой еще нет скрипта на au3, выложите под кат DirMenu.ini, если не трудно.

Не совсем понял, что нужно, но вот весь подкаталог на всякий случай:
 Hidden text

Удалю, как он вам перестанет быть нужным.


Last edited by Orion9 on Sat Jan 25, 2025 19:58; edited 1 time in total
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 186

Post (Separately) Posted: Sat Jan 25, 2025 17:51    Post subject: Reply with quote

Orion9 wrote:
Имелось в виду, что можно перезагрузить процесс ТС из самого AutoIt-скрипта

Это все понятно. Но загонять перезагрузку в скрипт смены языка не самое красивое решение. Значит придется писать скрипт-прослойку между Autorun и скриптом смены языка. Жутко все это некрасиво.
Orion9 wrote:

У вас разные иконки, потому что ассоциации прописаны в системе. Если извлечь папку TotalCommanderPortable из вашего установщика на "голую" систему, никаких иконок IrfanView там, конечно, не будет.

Теперь понял. Вы не изучали настройки Ирфана. Я вам выше писал, что в Ирфан встроена поддержка библиотеки иконок. Icons.dll является плагином Ирфана. И, скорей всего, будет работать любая с таким-же название и содержанием. Конечно если у Ирфана нет проверки на легальность. Так что иконки у меня именно на внутренних ассоциациях и будут отображаться на любой системе. Что неоднократно проверено.
Orion9 wrote:

Всё зависит от кодировки. OpenTextFile(ini, 1, false, -1)

Не изучил внимательно параметры OpenTextFile. Действительно работает.
Orion9 wrote:

Удалю, как он вам перестанет быть нужным.

Спасибо. Можно удалять.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 632

Post (Separately) Posted: Sat Jan 25, 2025 20:06    Post subject: Reply with quote

AkulaBig wrote:
Теперь понял. Вы не изучали настройки Ирфана.

Настроек Ирфана я действительно не изучал, отрицать не стану. Но распаковав вашу сборку, никакие значки у меня не сопоставились (что было ожидаемо), не смотря на то, что внутренняя ассоциация открывает именно IrfanView, а не системное приложение. Переключение внутренних и внешних ассоциаций, в таком случае, переключает только связи, не значки. Но если сделать полное сопоставление значков в секции [Associations], то переключаться будут и связи, и значки. Хотя я ещё поизучаю этот вопрос, когда найду время. А пока еще одна эксперементальная кнопка:
 Hidden text

 Hidden text

Кнопка выстраивает меню из шаблонов поиска, у которых есть расширения. Работать будет только, если секция [Searches] вынесена в отдельный файл редиректом (у меня это \Ini\Searches.ini). В файл TOTALCMD.INC нужно будет добавить команду c кодом 62010:
Code:
[________Autorun_________]=0
cm_SearchesMenuItem=62010;Searches Ini Menu

Временный файл панели сохраняется в "\Bars\Auto_Searches.bar". Для его создания используется скрипт Clip.vbs, путь к которому должен быть указан в заголовке (переменная DirVbs), как и путь к AkelPad. При выборе пункта меню, открывается подменю, состоящее из расширений. Выбор пункта с CTRL открывает расширения в AkelPad. Если AkelPad не используется, то текст результата будет просто скопирован в буфер. Выбор пункта с CTRL+SHIFT создает в буфере текст для сохранения в bat-файле, типа:
Code:
echo 0 >file0.aac
echo 1 >file1.ac3
echo 2 >file2.aif
echo 3 >file3.aiff
echo 4 >file4.aifc
echo 5 >file5.afc
echo 6 >file6.ape
echo 7 >file7.au
echo 8 >file8.snd
echo 9 >file9.cda
echo 10 >file10.dsf
echo 11 >file11.dts
echo 12 >file12.dtswav
echo 13 >file13.dtshd
echo 14 >file14.dtsma
echo 15 >file15.eac3
echo 16 >file16.flac
echo 17 >file17.fla
echo 18 >file18.m1a
echo 19 >file19.m2a
echo 20 >file20.mka
echo 21 >file21.mpa
echo 22 >file22.mp1
echo 23 >file23.mp2
echo 24 >file24.mp3
echo 25 >file25.mp4
echo 26 >file26.m4a
echo 27 >file27.m4b
echo 28 >file28.m4r
echo 29 >file29.mod
echo 30 >file30.mpc

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



Joined: 03 Dec 2008
Posts: 186

Post (Separately) Posted: Sat Jan 25, 2025 20:25    Post subject: Reply with quote

Orion9 wrote:
распаковав вашу сборку, никакие значки у меня не сопоставились

Проверил в песочнице, да. Не все так просто. Надо нажать на ассоциировать файлы. Только после этого значки появляются. И в Проводнике тоже. Получается это внешняя ассоциация. Убедили, что надо каждое расширение ассоциировать.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 632

Post (Separately) Posted: Sun Jan 26, 2025 00:19    Post subject: Reply with quote

Никогда не получается всё с первого раза - обязательно что-нибудь забудешь. У пунктов меню есть клавиша модификатор Win, которая просто вызывает подсказку со строкой шаблона. Скрипт вызывает две вспомогательные функции для своей работы: одну я добавил, вторую упустил:
 Hidden text

Ну и сам Clip.vbs тоже забыл приложить:
 Hidden text

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



Joined: 03 Dec 2008
Posts: 186

Post (Separately) Posted: Sun Jan 26, 2025 20:59    Post subject: Reply with quote

Loopback
Оказывается AUTORUN_TCLANG неправильно определяет язык. В WCMD_EXT_LNG.EXT она считает языком первый EXT.
Я тут с аксакалами на ру-борде обсудил эту ситуацию и предложил для расширенных языков использовать наименование WCMD_LNG_EXT.EXT. Вроде-бы все логично, но они мне подсказали, что такое наименование неправильно читает сам ТС. Он не видит справку WCMD_LNG.CHM/HLP. WDX-плагины не видят язык LNG. То-есть спецификация WCMD_EXT_LNG.EXT не просто так придумана. К тому-же есть и варианты посложней. Например, на винкмд.ру выкладываются паки расширенных языков и меню. Там вообще вот такие языки:
wcmd_win10%PROCESSOR_ARCHITECTURE%_1_eng.lng
wcmd_win10%PROCESSOR_ARCHITECTURE%_2_eng.lng
wcmd_win10amd64_1_eng.lng
wcmd_win10amd64_2_eng.lng
wcmd_win10x86_1_eng.lng
wcmd_win10x86_2_eng.lng
Прошу привести спецификацию AUTORUN_TCLANG в соответствие со спецификацией ТС. То-есть в AUTORUN_TCLANG записывать все, что после wcmd_.
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 ... 167, 168, 169 ... 171, 172, 173  Next
Page 168 of 173

 
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