Ru-Board.club
← Вернуться в раздел «Программы»

» TCIMG

Автор: oshizelly
Дата сообщения: 07.10.2015 10:32
Andrey_A_A

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

Задача у меня очень простая, но для TCIMG, наверное, весьма экзотическая. Просто не знаю, куда ещё обращаться.
Короче говоря, есть такой довольно приличный текстовый процессор - Atlantis Word с некоторыми уникальными фишками, которых нет даже в MS Word и OpenOffice Writer. Но у этой программы есть один большой недостаток: не умеет открывать и сохранять документы из/в юникодные имена файлов.

Ну вот я и подумал, что, может, какой-то скрипт отслеживал бы его работу и при попытке юзера открыть в Atlantis файл с юникодными символами в имени перехватывал бы его и копировал бы во временный файл или создавал символическую ссылку на NTFS, заменяя юникодные символы, скажем, на схожие ASCII-символы, и передавал бы дальше в Atlantis уже временный файл. Это первая половина задачи, как мне кажется, довольно прото реализуемая любым скриптом

А вот вторая часть задачи сложнее. Хочется, чтобы когда Atlantis сохранит изменения в таком временном файле и закроет и разблокирует его, то скрипт подключился бы снова и переименовал бы файл обратно... Впрочем, я сейчас подумал (лучше поздно, чем никогда), что при использовании симлинка этот этап, наверное, вообще не нужен?

Ну, вот как-то так примерно. Понимаю, что идея довольно мутная, но очень уж хочется найти решение
Автор: Andrey_A_A
Дата сообщения: 11.10.2015 19:30

Цитата:
Впрочем, я сейчас подумал (лучше поздно, чем никогда), что при использовании симлинка этот этап, наверное, вообще не нужен?

oshizelly,

Если 2-я часть задачи не нужна, то можно проверять символы в имени и если там есть юникодные символы, то они заменяются в имени, копируется файл и открывается:

Тестовая версия TCIMG 116_b14, в версии 11.5. замените соответствующие файл(ы)

Пока так, возможно придумается и вторая часть:

Открыть файл под курсором в программе Atlantis, если имя файла имеет не ASCII-символы, то они заменяются и открывается дублированный файл с новым именем

Код: TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
exect=$var_name='"%O"'||$var_path='%P%N' <IF> <info=n4|32-255??$var_name> = 0 <THEN> sends=$var_name||@@Diacritic!!1 copyy=%P%N||"%p"!!4||##GLOBALSENDS<1> exect=$var_path='GLOBALCOPYY<1>' <ENDIF> start=%%COMMANDER_PATH%%\Programs\Atlantis\Atlantis.exe||$var_path
%COMMANDER_PATH%\Wcmicons.dll,1
Открыть файл под курсором в программе Atlantis, если имя файла имеет не ASCII-символы, то они заменяются и открывается дублированный файл с новым именем

0
-1
Автор: Andrey_A_A
Дата сообщения: 12.10.2015 00:19
Обновил утилиту TCIMG 11.6
Автор: oshizelly
Дата сообщения: 12.10.2015 11:09
Andrey_A_A 19:30 11-10-2015
Цитата:
Если 2-я часть задачи не нужна, то можно проверять символы в имени и если там есть юникодные символы, то они заменяются в имени, копируется файл и открывается...
Открыть файл под курсором в программе Atlantis, если имя файла имеет не ASCII-символы, то они заменяются и открывается дублированный файл с новым именем

Огромное спасибо! Но дело в том, что второй этап задачи не нужен только в том случае, если первый этап решать через создание символической ссылки (symlink), как я предположил в предыдущем посте. Если же на первом этапе просто копировать оригинальный файл с переименованием, то на втором этапе придётся его переименовывать обратно. Конечно, можно это и вручную сделать, но...

А симлинки не умеет создавать? Вроде бы Total Commander это умеет, если не сам, то вместе с каким-то плагином или адд-оном.

Добавлено:

Цитата:
если имя файла имеет не ASCII-символы, то они заменяются

А можно ли сделать так, чтобы заменялись не любые non-ASCII / Unicode символы, а только те, которые не относятся к текущей кодовой странице? Ведь символы из кодовой страницы, которая указана в региональных настройках OS: language for non-Unicode programs никаких сложностей у non-Unicode programs не бывает, эти символы обрабатываются наравне с ASCII. Проблема возникает только при попытке открыть файл, содержащий в имени символы из чужой кодовой страницы.
Автор: shveicar
Дата сообщения: 12.10.2015 16:40

Цитата:
А можно ли сделать так, чтобы заменялись не любые non-ASCII / Unicode символы, а только те, которые не относятся к текущей кодовой странице? Ведь символы из кодовой страницы, которая указана в региональных настройках OS: language for non-Unicode programs никаких сложностей у non-Unicode programs не бывает, эти символы обрабатываются наравне с ASCII. Проблема возникает только при попытке открыть файл, содержащий в имени символы из чужой кодовой страницы.


День добрый.
А вы не могли бы привести примеры, с символами про которые вы говорите. Дело в том что формат специфики html символов, может отличаться от синтаксиса используемого в программе Atlantis. Поэтому тут важно точно знать о чем идет речь.
Автор: Andrey_A_A
Дата сообщения: 12.10.2015 19:16

Цитата:
Если же на первом этапе просто копировать оригинальный файл с переименованием, то на втором этапе придётся его переименовывать обратно. Конечно, можно это и вручную сделать, но...

oshizelly

Могу предложить 2 кнопки:
1-я открывает файлы с трансформацией имени + запись имён (старого и нового) в файл для 2-й кнопки
2-я из файла с именами переименовывает их обратно (при этом надо закрыть Atlantis)

Открыть файл под курсором в программе Atlantis, если имя файла имеет не ASCII-символы, то они заменяются и открывается дублированный файл с новым именем + записать с папку программы в папку Temp во временный файл Atlantis_Name.txt имена для последующего переименования

Код: TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
exect=$var_name='"%O"'||$var_path='%P%N' <IF> <info=n4|32-255??$var_name> = 0 <THEN> sends=$var_name||@@Diacritic!!1 copyy=%P%N||"%p"!!4||##GLOBALSENDS<1> exect=$var_path='GLOBALCOPYY<1>' textt=%%COMMANDER_PATH%%\Programs\Atlantis\Temp\Atlantis_Name.txt||$$@CRLF$var_path@CRLF"%O"||formt<60>||code<4>||backup<0> <ENDIF> start=%%COMMANDER_PATH%%\Programs\Atlantis\Atlantis.exe||$var_path
%COMMANDER_PATH%\Wcmicons.dll,1
Открыть файл под курсором в программе Atlantis, если имя файла имеет не ASCII-символы, то они заменяются и открывается дублированный файл с новым именем + записать с папку программы в папку Temp во временный файл Atlantis_Name.txt имена для последующего переименования

0
-1
Автор: oshizelly
Дата сообщения: 12.10.2015 19:45
shveicar 16:40 12-10-2015
Цитата:
е могли бы привести примеры, с символами про которые вы говорите. Дело в том что формат специфики html  символов, может отличаться от синтаксиса используемого в программе Atlantis.

Не понял вашего вопроса (или, возможно, вы не поняли моего описания проблемы). При чём тут формат HTML и синтаксис, используемый в программе Atlantis? Речь про юникодные символы в имени открываемого файла. Или, возможно, я сам ничего не понимаю? Тогда поясните.

Andrey_A_A 19:16 12-10-2015
Цитата:
Могу предложить 2 кнопки:
1-я открывает файлы с трансформацией имени + запись имён (старого и нового) в файл для 2-й кнопки
2-я из файла с именами переименовывает их обратно (при этом  надо закрыть Atlantis)

Спасибо, буду пробовать.
Всё-таки переспрошу ещё раз, через симлинки эта задача не решается?


Цитата:
+ записать с папку программы в папку Temp во временный файл Atlantis_Name.txt имена для последующего переименования

Какая-то описка или путаница в описании, поэтому не совсем уверен, что правильно понял. Что записывается и куда?
Автор: Andrey_A_A
Дата сообщения: 12.10.2015 19:57

Цитата:
Всё-таки переспрошу ещё раз, через симлинки эта задача не решается?

Возможно решается, я не рассматривал этот вопрос...

Цитата:

Какая-то описка или путаница в описании, поэтому не совсем уверен, что правильно понял. Что записывается и куда?

в первой кнопке кроме дублирования с новым именем и открытием файла происходит запись текущего имени и пути в файл %%COMMANDER_PATH%%\Programs\Atlantis\Temp\Atlantis_Name.txt
(т.е. в моём случае в папке программы Atlantis создаётся папка Temp а внутри файл Atlantis_Name.txt)

(в кнопках конечно необходимо эти пути заменить на свои)

примерно такая запись в \Atlantis_Name.txt:

Код:

C:\1\NameO_plus.txt
Name&#212;_plus
C:\1\NaAme.txt
Na&#192;me
Автор: shveicar
Дата сообщения: 12.10.2015 22:49

Цитата:
Не понял вашего вопроса (или, возможно, вы не поняли моего описания проблемы). При чём тут формат HTML и синтаксис, используемый в программе Atlantis? Речь про юникодные символы в имени открываемого файла. Или, возможно, я сам ничего не понимаю? Тогда поясните.


Если речь идет именно о символах в имени файла, то да, - тут другой вопрос.. Это решается за счет конвертации символов в имени в нужную кодировку. Андрей уже предложил решение..
Автор: Finn
Дата сообщения: 17.10.2015 13:15
При создании DOC файла запускается AkelPad, и файл открывается в нем:

Код: TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utilites\TCIMG\TCIMG.exe
creat=%p||х.[input=BOX10]||##date<YYYY_MM_DD>||open<ASSINI|1>
%COMMANDER_PATH%\Icl\Tc_icons.dll,15
Создать пустой файл с именем текущей даты, выбранным в диалоге расширением и открыть в ассоциированной программе


-1
Автор: Abel11
Дата сообщения: 17.10.2015 14:01
Finn
У меня все работает, файлы открываются в строго ассоциированных программах.

Код: TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
creat="%p"||х.[input=BOX10]||##date<YYYY_MM_DD>||open<ASSOC|1>
Wcmicons.dll,19
Создать пустой файл с именем текущей даты, выбранным в диалоге расширением и открыть в ассоциированной программе

-1
-1
Автор: Finn
Дата сообщения: 17.10.2015 14:08
Откатился до старой версии, вернулся на 11.6, снова вариант
Код: creat=%p||х.[input=BOX10]||##date<YYYY_MM_DD>||open<ASSOC|1>
Автор: Abel11
Дата сообщения: 17.10.2015 14:24
Finn
Попробуйте прописать " ; " вначале перечисления расширений в фильтрах и проверьте еще раз работу кнопки
вот так:
Код: [Associations]
Filter1=;*.doc;*.rtf;*.odt;*.docx;*.dot;*.wri;*.tip;*.dotm;*.dotx;
Filter1_open=""c:\WINDOWS\ServicePackFiles\i386\wordpad.exe" "%1""
Filter2=;*.txt;*.ini;
Filter2_open=%COMMANDER_PATH%\Plugins\exe\akelpad.exe "%1"
Автор: Finn
Дата сообщения: 17.10.2015 14:33
Abel11
Сделал, не работает. Так тоже нет:
Код: Filter1=;*.doc;*.rtf;*.odt;*.docx;*.dot;*.wri;*.tip;*.dotm;*.dotx;
Filter1_open=%PROGRAMFILES%\Windows NT\Accessories\wordpad.exe "%1"
Автор: Abel11
Дата сообщения: 17.10.2015 15:15
Finn


Цитата:
[Programs]
TextEdit=

В данном случае TextEdit работает с параметрами openn<TextEdit|1>, с ассоциациями он не связан.
рассмотрим внимательно параметр open<>

Описание параметра open<>
Параметр open<Path\Name\ASSOC\ASSINI|Number|Parameters|Flag>, где:
Первый подпараметр означает путь к программе, которой открывать, может иметь несколько вариантов:
0) Path - путь к программе.
1) Name - имя КЛЮЧА пути программы прописанной в TCIMG.ini в секции [Programs].
2) ASSOC - если прописан тег ASSOC, то программа ищется по расширению в ассоциациях Total Commander в Wincmd.ini в секции [Associations].
3) ASSINI - если прописан тег ASSINI, то программа ищется по расширению в ассоциациях прописанных в TCIMG.ini в секции [Associations] (синтаксис аналогичен Wincmd.ini секции [Associations]).

Number - количество открываемых файлов. -1 означает все.
Parameters - параметры программы:
x - без параметров (по умолчанию)
explorer - означает открытие файла в программе, ассоциируемой в системе (игнорируется 1-й параметр)
Flag - Режим отображения запускаемой программы:
по умолчанию видимое окно
1 - скрытое окно
2 - свернутое окно
3 - развернутое окно
Автор: Finn
Дата сообщения: 17.10.2015 15:35
Abel11
Спасибо, я уже читал про параметр open<>, изменял значения после ASSINI| и все равно имею то, что имею.
Впрочем рабочий вариант
Код: creat="%p"||х.[combo=BOX3]||##date<YYYY_MM_DD>||open<ASSOC|1>
Автор: Andrey_A_A
Дата сообщения: 17.10.2015 17:27

Цитата:
2) ASSOC - если прописан тег ASSOC, то программа ищется по расширению в ассоциациях Total Commander в Wincmd.ini в секции [Associations].
3) ASSINI - если прописан тег ASSINI, то программа ищется по расширению в ассоциациях прописанных в TCIMG.ini в секции [Associations] (синтаксис аналогичен Wincmd.ini секции [Associations]).

Abel11, Finn, выявилась ошибка в справке (будет исправлено) правильно так:

Код: 3) ASSOCINI- если прописан тег ASSOCINI, то программа ищется по расширению в ассоциациях прописанных в TCIMG.ini в секции [Associations] (синтаксис аналогичен Wincmd.ini секции [Associations])
Автор: Finn
Дата сообщения: 17.10.2015 18:18
Andrey_A_A
Ясно, ошибка нашлась. Это радует. Спасибо за классную утилиту.

Ткните носом, где можно почитать историю изменений, если таковая есть.
Какие файлы нужно менять при накатывании новых версий? Больше всего интересует TCIMG.ini. Редактировать и заменять пути и ассоциации в этом файле, процесс утомительный.
Автор: Abel11
Дата сообщения: 17.10.2015 18:32
Finn, Как сохранять свои настройки при обновлении? => здесь

Автор: Andrey_A_A
Дата сообщения: 20.10.2015 13:15

Цитата:
где можно почитать историю изменений, если таковая есть

Finn,
Полная история изменений в справке к утилите TCIMG.chm:
• Последние изменения http://tc-image.zz.vc/TCIMG_ONLINE/html/history.htm
• История до 10-й версии http://tc-image.zz.vc/TCIMG_ONLINE/html/history0.htm
Автор: Andarin
Дата сообщения: 21.10.2015 08:48
Abel11
Andrey_A_A
А есть возможность сделать кнопку для создания плейлистов в Total Commander, но не просто файлы в панели, а из Virtual Panel? Т. е., например, там есть папка, в которой сколько-то файлов, в реальности они расположены в разных каталогах, может, даже на разных дисках. Если делать плейлист имеющимися кнопками, создаётся пустой плейлист. В виртуальной панели не сами файлы, а что-то вроде символических ссылок, реальные пути указаны. Но если делать плейлист из обычных символических ссылок, где-нибудь на диске, всё получается, как надо. В случае виртуальной панели - нет.
Автор: Andrey_A_A
Дата сообщения: 21.10.2015 11:25
Andarin - этот вопрос навряд ли относится к TCIMG. Это вопрос к автору Virtual Panel.
Я не пользуюсь виртуальной папкой, но если мне не изменяет память, то там есть свой запускающий файл и кучу внутренних параметров, прописав которые, наверно можно сделать и плейлисты...
Автор: Finn
Дата сообщения: 21.10.2015 23:38
Abel11
Вы поделились кнопками для работы с архивами RAR в этом посте.
1. С кнопками работает консольная версия RAR.
2.
Код: TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
forpgs global slist=%L <FOR> 1 <TO> GLOBALSLIST<0> start=RAR||-IBCK||a||-r||-p123||-m5||-ms||-idc,d,p,q||-cfg-||-c-||-s||-rr3p||"<info=o75GLOBALSLIST<:INDEX:>><info=o73GLOBALSLIST<:INDEX:>>.rar"||"<info=o73GLOBALSLIST<:INDEX:>>"||&&wait||upd<1> <NEXT>
Wcmicons.dll,20
Упаковать выделенные объекты в активной панели, каждый объект в именной архив (пароль 123)
Автор: Abel11
Дата сообщения: 22.10.2015 00:57

Finn 23:38 21-10-2015
Цитата:
Что изменить в параметрах, чтобы "Упаковать выделенные объекты в другой панели, каждый объект в именной архив (пароль 123)"?


Код: TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
forpgs global slist=%L <FOR> 1 <TO> GLOBALSLIST<0> start=RAR||-IBCK||a||-r||-p123||-m5||-ms||-idc,d,p,q||-cfg-||-c-||-s||-rr3p||"%t"\"<info=o73GLOBALSLIST<:INDEX:>>.rar"||"<info=o73GLOBALSLIST<:INDEX:>>"||&&wait||upd<1> <NEXT>
Wcmicons.dll,17
Упаковать выделенные объекты в другую панель, каждый объект в именной архив (пароль 123)

-1
-1
Автор: Finn
Дата сообщения: 22.10.2015 09:11
Abel11
Спасибо за оперативность.
Нашел две особенности.
1.Через некоторое время в процессе работы, архивы создаются не для всех выделенных файлов, или создаются, но внутри архива пусто.
После перезапуска Тотала снова все работает правильно. (Я, кстати, уже где-то встречал подобную информацию от Андрея, но с другими процессами, что правильная работа восстанавливается после перезапуска Total Commander.)
2.При создании архива RAR для выделенного файла, например 1.doc, в архив упаковываются все файлы с этим именем, которые есть во вложенных каталогах любых уровней в активной панели. Здорово, конечно, но не всегда такое нужно.
При упаковке в 7z работает правильно:
Код: forpgs global slist=%L <FOR> 1 <TO> GLOBALSLIST<0> start=7-Zip||a||-mx9||-p123||"%t"\"<info=o73GLOBALSLIST<:INDEX:>>.7z"||"<info=o73GLOBALSLIST<:INDEX:>>"||&&hide||&&wait||upd<1> <NEXT>
Автор: Aleks431
Дата сообщения: 22.10.2015 11:41
Что-то на версии 11.5 почему-то не стабильно работает следующая кнопка через лаунчер TCIMGGO.exe - похоже не срабатывает процесс сохранения на рабочий стол
pause=3s scren=x||x||sclas<ACTIVE>||sclipup<1> start=IrfanView||/clippaste/jpgq=90/convert/$f06\<info=s47>.jpg
Записать скриншот активного окна в буфер обмена через 3 сек и открыть в сохранить на рабочий стол

И еще зачем-то в папке с лаунчером TCIMGGO.exe всегда создается пустая папка с названием "x". Или в активной панели, если запускать через TC.
Автор: Abel11
Дата сообщения: 22.10.2015 12:50
Aleks431, откуда берутся такие кнопки?

Предлагаю такой вариант:
Код: TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
imgpr=1 pause=3s scren=$f06||$fname||sclas<ACTIVE>||sclipup<2>
Wcmicons.dll,19
Через три секунды создать скриншот выбранного - активного окна на рабочем столе и скопировать его в буфер обмена

-1
-1
Автор: Aleks431
Дата сообщения: 22.10.2015 15:30
При помощи хелпа составил, откуда ещё брать. Тема об IrfanView.
Такой вариант очень простой. И степень сжатия для JPG тут похоже не изменить?
Автор: Abel11
Дата сообщения: 22.10.2015 20:04
Aleks431 11:41 22-10-2015
Цитата:
всегда создается пустая папка с названием "x"

Да, имеет место быть, автор разберется.

Цитата:
И степень сжатия для JPG тут похоже не изменить?

Ну, если хочется через IrfanView, тогда можно и через эмуляцию рассмотреть вариант

Код: TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
imgpr=1 pause=3s keybd=0~~!{PRINTSCREEN} start=IrfanView||/clippaste/jpgq=90/convert/$f06\<info=s47>.jpg beepss
Wcmicons.dll,20
Через три секунды создать скриншот выбранного - активного окна на рабочем столе с именем текущей даты


-1
Автор: Abel11
Дата сообщения: 23.10.2015 23:45
aidarsimon 09:38 19-10-2015
Цитата:
нужно, например у 50 каталогов переименовать, добавив в конце _%текущая_дата%

Переименование выделенных объектов путем добавления в начало имени, через символ подчеркивание, текущей даты

Код: TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
renms=%L||^^date<YY.MM.DD-HH.NN.SS>_
Wcmicons.dll,16
Переименование ... вставка даты в начале имени 15.10.23_23.30.00_Имя
-1
-1

Страницы: 123456789101112131415161718192021222324252627282930313233

Предыдущая тема: дубль


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.