Описание команды


exicn

Извлечение значков из файла.

exicn=FileICL||Path, %p, %t, ||String, ||Name, , ||icn<>, ||progres<>, ||upd<>, ||<info>, ||<xinfo>, ||nodelim<>, ||Dialogs

Параметры:

1-й обязательный параметр.
FileICLПуть. FileICL - полный путь к файлу, имеющему иконки.
2-й обязательный параметр.
Path, %p, %tПуть. Path - путь назначения, куда извлекаются иконки. см. Дополнение №7.
Дополнительные параметры:
StringСтрока номеров. 3-й необязательный параметр.
String - номер или строка номеров необходимых для извлечения иконок, перечисленных через запятую.
  По умолчанию отсчёт идёт с единицы.
  Если указано 0, то извлекаются все иконки.
  Если необходимо прописывать номера с отсчётом с нуля, то можно воспользоваться параметром icn<>
NameИмя иконок. 4-й необязательный параметр.
Дополнительные параметры:
icn<>Нумерация. Параметр icn<Number>, где Number:
  1 - в строке номеров значков нумерации с единицы (по умолчанию).
  0 - нумерация с нуля.
progres<>Прогресс бар. Параметр progres<> - если указан, то при операции будет запущен прогресс бар.
Учитывается ключ MsBoxAtTheCompletion в TCIMG.ini в секции [Setting].
upd<>Обновление панели.
  Описание
Параметр upd<Number>, где Number - значение обновления панели(ей) Total Commander:
  1 - обновить активную панель.
  2 - обновить обе панели, вернуться в активную.
  3 - обновить другую панель, вернуться в активную.
  4 - обновить активную панель, перейти в другую.
  5 - обновить другую панель, остаться в другой.
  6 - обновить обе панели, остаться в другой.
  7 - не обновлять (по умолчанию, т.е. если параметр не прописан, то панели не обновляются).
<info>Получение различной информации. см. Дополнение №10.
<xinfo>Получение различной информации. см. Дополнение №10.
  Аналог параметра <info>, имеет возможность внутри параметра использовать параметр <info>
  Пример: <xinfo=o450<info=f50FilePath//>//>
nodelim<>Без добавления счётчика и разделителя. Используется для извлечения одной иконки.
DialogsДиалоги. см. Дополнение №18
  Описание
Различные параметры диалогов.
  [input] - диалог ввода информации в InputBox.
  [richinput] - диалог ввода информации в RichInputBox.
  [combo] - диалог выбора информации в ComboBox.
  [group] - диалог выбора информации в GroupBox.
  [check] - диалог выбора информации в CheckBox.
  [edits] - диалог выбора информации в EditBox.
  [sfold] - выбор каталога.
  [zfold] - выбор каталогов.
  [sopen] - выбор файла для открытия.
  [ssave] - выбор файла для сохранения.
  [sicon] - диалог просмотра и выбора значка.
  [msgbx] - окно сообщения MsgBox.
  [updwn] - диалог выбора числовой информации UpDown.
  [image] - диалог выбора изображения.
  [elect] - диалог выбора файлов и папок.
...и другие диалоги.

Примечания:

Дополнительная настройка счётчика и разделителя в именах иконок можно настроить в TCIMG.ini в ключах IconCounterRank и IconNameDelimeter.

Основные типы файлов, содержащие иконки: EXE, DLL, ICL, SCR, OCX, CPL, WCX, WDX, WLX, WFX, SFX, TSP, IME, AX, DRV...

Там, где необходимо указывать путь можно использовать сокращения для специальных папок и файлов $f01 ... см. Дополнение №8.
Аналог команды для нескольких объектов exics

Команда имеет возможность передавать другим командам информацию через именные глобальные переменные. см. Дополнение №23

Имя переменнойОписание
GLOBALEXICN0массив входных данных (в первой ячейке исходный путь библиотеки)
GLOBALEXICNмассив выходных данных (список путей созданных ICO файлов)
GLOBALEXICN1массив выходных данных (в первой ячейке путь каталога, где были созданы ICO файлы)

См. также:

exics, icache, icldf, iclds, icodf, icods, icofs, icoft, icomf, icomm, iconf, iconn, iconv, icovw, lbicl

Примеры:
 Как создать кнопку?

anf2d=%P%N||2||^(.+\\([^\\]+)\.[^\\.,]+),?(\d*)?$ arr2d=$GLOBALANF2D||27|3|?V|##|'::'=''''?0:'::' <FOR> 1 <TO> GLOBALARR2D1<0> exicn=GLOBALARR2D1<:INDEX:>||"%t"||GLOBALARR2D3<:INDEX:>||GLOBALARR2D2<:INDEX:>||icn<0> <NEXT> tcimg=$cm4006|540|4006 ;; из списка под курсором, в котором прописаны пути файлов со значками и номерами через запятую (E:\TCIMG.dll,55), произвести проверку путей, если нет номеров добавить 0 и извлечь в другую панель заданные с именами библиотеки и номера

anf2d=%P%N||6||^(.+\\([^\\]+)\.[^\\.]+),(\d*)$ <FOR> 1 <TO> GLOBALANF2D1<0> exicn=GLOBALANF2D1<:INDEX:>||"%t"||GLOBALANF2D3<:INDEX:>||GLOBALANF2D2<:INDEX:>||icn<0> <NEXT> tcimg=$cm4006|540|4006 ;; из списка под курсором, в котором прописаны пути файлов со значками и номерами через запятую (E:\TCIMG.dll,55) извлечь в другую панель заданные с именами библиотеки и номера

anf2d=C:\List.txt||2||(.*),(.*) <FOR> 1 <TO> GLOBALANF2D1<0> exicn=GLOBALANF2D1<:INDEX:>||"%p"||GLOBALANF2D2<:INDEX:> <NEXT> ;; извлечь в активную панель указанные (через запятую в конце пути) иконки из списка путей библиотек значков C:\List.txt

dilog=<sicon=shell32.dll> exicn=GLOBALSICON1<2>||"%p\Ikons"||GLOBALSICON1<3>||icn<0> start=BATtoEXE||-bat||%P%N||-save||[tc=AO].exe||-invisible||-icon||GLOBALEXICN<1>||upd<1> ;; конвертировать*.bat под курсором в одноимённый *.exe со значком выбранным в просмотрщике DLL

dilog=<sicon=shell32.dll> slist=@C:\Users\User\AppData\Local\Temp\ exicn=GLOBALSICON1<2>||GLOBALSLIST<1>||GLOBALSICON1<3>||icn<0> start=BATtoEXE||-bat||%P%N||-save||[tc=AO].exe||-invisible||-icon||GLOBALEXICN<1>||upd<1>||&&wait delsm=GLOBALEXICN<1>||1 ;; конвертировать*.bat под курсором в одноимённый *.exe со значком выбранным в диалоговом окне. (значок извлекается в папку временных файлов Windows "Temp" и по окончанию конвертирования удаляется)

exect=$var_i=##[input=BOX77] exicn=%P%N||"%t"||$var_i||nodelim<> dubls=1 focusp tcimg=0~~$cm540 ;; извлечь в другую панель заданную иконку в диалоге именем библиотеки, без добавления счётчика и разделителя + обновить другую панель в другом процессе

exect=$var_n='"%O"' xlist=[tc=AM] sends=<info=t1$GLOBALXLIST//> count=GLOBALXLIST<t>||$var_n||0||countline<0> rends=$GLOBALXLIST??-1||?G|GLOBALCOUNT<1>:-1 winls=$GLOBALRENDS||800x600||GLOBALSENDS<1>||but<2> lbicl=$GLOBALWINLS||"%p$var_n".dll|1||0||progres<> delsm="%p$var_n"||1 exicn=GLOBALLBICL<1>||"%p$var_n"||upd<1> ;; открыть для просмотра и редактирования выделенные папки библиотек значков.

exicn=%%COMMANDER_PATH%%\AkelExtImage.dll||"%p" ;; извлечь в текущую панель все иконки из файла AkelExtImage.dll

exicn=%%COMMANDER_PATH%%\AkelExtImage.dll||"%p"||upd<1> ;; извлечь в текущую панель все иконки из файла AkelExtImage.dll + обновить текущую панель

exicn=%%COMMANDER_PATH%%\AkelExtImage.dll||"%p"AkelExtImage\||0||AkelExtImage||upd<1> ;; извлечь в текущую панель в создаваемую папку AkelExtImage все иконки из файла AkelExtImage.dll + обновить текущую панель

exicn=%P%N||"%t" ;; извлечь в другую панель все иконки из файла под курсором

exicn=%P%N||"%t"||[input=BOX77]||nodelim<> dubls=1 focusp tcimg=0~~$cm540 ;; извлечь в другую панель заданную иконку в диалоге именем библиотеки, без добавления счётчика и разделителя + обновить другую панель в другом процессе

exicn=%P%N||"%t"||0,4,9||icn<0> ;; извлечь в другую панель 0-ю, 4-ю, 9-ю иконки из файла под курсором (нумерация с нуля)

exicn=%P%N||"%t"||1,5,10 ;; извлечь в другую панель 1-ю, 5-ю, 10-ю иконки из файла под курсором

exicn=%P%N||"%t"||1,5,10||Name ;; извлечь в другую панель 1-ю, 5-ю, 10-ю иконки из файла под курсором, присвоив иконкам базовое имя Name

exicn=%P%N||"%t"||1,5,10||TEST\Name||upd<3> ;; извлечь в другую панель 1-ю, 5-ю, 10-ю иконки из файла под курсором, присвоив иконкам базовое имя Name, в создаваемую папку TEST + обновить другую панель

exicn=%P%N||"%t"||1,5,10||upd<3> ;; извлечь в другую панель 1-ю, 5-ю, 10-ю иконки из файла под курсором + обновить другую панель

exicn=%P%N||"%t"||1||nodelim<> dubls=1 focusp tcimg=0~~$cm540 ;; извлечь в другую панель 1-ю иконку именем библиотеки, без добавления счётчика и разделителя + обновить другую панель в другом процессе

exicn=%P%N||"%t"||1||nodelim<>||upd<3> ;; извлечь в другую панель 1-ю иконку именем библиотеки, без добавления счётчика и разделителя + обновить другую панель

exicn=%P%N||"%t"||3||nodelim<> ;; извлечь в другую панель 3-ю иконку именем библиотеки, без добавления счётчика и разделителя

exicn=%P%N||"%t"||5||nodelim<> ;; извлечь в другую панель 5-ю иконку именем библиотеки, без добавления счётчика и разделителя

exicn=%P%N||"%t"||progres<> ;; извлечь в другую панель все иконки из файла под курсором отображением прогресса

exicn=%P%N||"%t"||upd<3> ;; извлечь в другую панель все иконки из файла под курсором + обновить другую панель

exicn=%P%N||"%t"<info=f12%P%N//>||0||<info=f12%P%N//>||upd<3> ;; извлечь в другую панель все иконки из файла под курсором, в создаваемую папку именем библиотеки, иконки именем библиотеки + обновить другую панель

exicn=%P%N||"%t"TEST||0||<info=f12%P%N//>||upd<3> ;; извлечь в другую панель все иконки из файла под курсором, в создаваемую папку TEST, иконки именем библиотеки под курсором + обновить другую панель

global exicn=%P%N||"%t" GLOBALEXICN0<a> GLOBALEXICN<a> GLOBALEXICN1<a> ;; извлечь в другую панель все иконки из файла под курсором и вывести данные в глобальные переменные

global exicn=[tc=TA]||"%p\Ikons"||[tc=TA],0||icn<0> start=BATtoEXE||-bat||%P%N||-save||[tc=AO].exe||-invisible||-icon||GLOBALEXICN<1>||upd<1> ;; конвертировать *.bat под курсором в одноимённый *.exe с первым значком файла неактивной панели

imgpr=1 global exicn=%%COMMANDER_PATH%%\Wcmicons.dll||$f254?55 sends=$f212\Icons.txt||&?(?:[^\d])0*(\d+)!!3!!1!!, bends=<info=n8|GLOBALSENDS<1>|0|GLOBALEXICN<0>-1>||?Ffnc_numplus $GLOBALEXICN[GLOBALBENDS<1>]=;$f202\Mono8x8.ico lbicl=$GLOBALEXICN||"%p"\Wcmicons_New.dll||0||upd<1> tempz=55||1 ;; из библиотеки Wcmicons.dll оставить заданные номеров значков, прописанных в файле Icons.txt, остальные значки заменить "пустышкой" (значком Mono8x8.ico) и сохранить в активную панель в новую библиотеку Wcmicons_New.dll

imgpr=1 tends=?$f254?55 exicn=%%COMMANDER_PATH%%\Wcmicons.dll||GLOBALTENDS<1> sends=$f212\Icons.txt||&?(?:[^\d])0*(\d+)!!3!!1!!, bends=<info=n8|GLOBALSENDS<1>|0|GLOBALEXICN<0>-1>||?Ffnc_numplus $GLOBALEXICN[GLOBALBENDS<1>]=;$f202\Mono8x8.ico lbicl=$GLOBALEXICN||"%p"\Wcmicons_New.dll||0||upd<1> tempz=55||1 ;; из библиотеки Wcmicons.dll оставить заданные номеров значков, прописанных в файле Icons.txt, остальные значки заменить "пустышкой" (значком Mono8x8.ico) и сохранить в активную панель в новую библиотеку Wcmicons_New.dll

sends=?$f254?55 dilog=<sicon=%%WINDIR%%\System32\shell32.dll> exicn=%%WINDIR%%\System32\shell32.dll||GLOBALSENDS<1>1||GLOBALSICON1<3>||icn<0> $GLOBALICXXX=$GLOBALEXICN dilog=<sicon=%%COMMANDER_PATH%%\TCIMG.dll> exicn=%%COMMANDER_PATH%%\TCIMG.dll||GLOBALSENDS<1>2 exect=GLOBALSICON2<3>+1 $GLOBALEXICN[GLOBALEXECT<1>]=$GLOBALICXXX[1] lbicl=GLOBALEXICN<t>||"%p"xxx.dll||0||upd<1> delsm=GLOBALSENDS<1>||1 ;; из библиотеки shell32.dll выбрать значок и заменить значок выбранный в TCIMG.dll сохранив в новую библиотеку xxx.dll в активную панель

sends=?$f254?55 dilog=<sicon=[sopen=BOX8]> exicn=GLOBALSOPEN1<1>||GLOBALSENDS<1>1||GLOBALSICON1<3>||icn<0> $GLOBALICXXX=$GLOBALEXICN dilog=<sicon=[sopen=BOX8]> exicn=GLOBALSOPEN2<1>||GLOBALSENDS<1>2 exect=GLOBALSICON2<3>+1 $GLOBALEXICN[GLOBALEXECT<1>]=$GLOBALICXXX[1] lbicl=GLOBALEXICN<t>||"%p"xxx.dll||0||upd<1> delsm=GLOBALSENDS<1>||1 ;; из библиотеки №1 выбрать значок и заменить значок выбранный в библиотеке №2 сохранив в новую библиотеку xxx.dll в активную панель

sends=?$f254?55 exicn=D:\icn1.dll||GLOBALSENDS<1>1||56 $GLOBALICXXX=$GLOBALEXICN exicn=D:\icn2.dll||GLOBALSENDS<1>2 $GLOBALEXICN[67]=$GLOBALICXXX[1] lbicl=GLOBALEXICN<t>||"%p"xxx.dll||0||upd<1> delsm=GLOBALSENDS<1>||1 ;; из библиотеки icn1.dll извлечь 56 значок, заменить им в icn2.dll 67-й значок, сохранив в новую библиотеку xxx.dll в активную панель

shape=36 dilog=[combo=BOX40][input=BOX106][break][combo=BOX40][input=BOX106] dends=GLOBALINPUT<2>??-8,||?Ffun_numplus sends=?$f254?55 exicn=$f250\GLOBALCOMBO<1>||GLOBALSENDS<1>1||GLOBALINPUT<1>||icn<0> $GLOBALICXXX=$GLOBALEXICN exicn=$f250\GLOBALCOMBO<2>||GLOBALSENDS<1>2 <FOR> 1 <TO> GLOBALICXXX<0> $GLOBALEXICN[GLOBALDENDS<:INDEX:>]=$GLOBALICXXX[:INDEX:] <NEXT> lbicl=GLOBALEXICN<t>||"%p"xxx.dll||0||upd<1> delsm=GLOBALSENDS<1>||1 ;; заменить заданными значками 1-й библиотеки заданные значки во 2-й, сохранив в новую библиотеку xxx.dll в активную панель (библиотеки и номера значков в диалоге) (отсчёт значков с 0)

tends=?$f254?55 exicn=$f250\TCIMG.dll||GLOBALTENDS<1> sends=$f212\Icons.txt||&?(?:[^\d])0*(\d+)!!3!!1!!, bends=<info=n8|GLOBALSENDS<1>|0|GLOBALEXICN<0>-1>??-8,||?Ffnc_numplus <FOR> 1 <TO> GLOBALBENDS<0> $GLOBALEXICN[GLOBALBENDS<:INDEX:>]=;$f202\Mono8x8.ico <NEXT> lbicl=$GLOBALEXICN||$f250\TCIMG_New.dll||0||upd<1> tempz=55||1 ;; из библиотеки TCIMG.dll оставить заданные номеров значков, прописанных в файле Icons.txt, остальные значки заменить "пустышкой" (значком Mono8x8.ico) и сохранить в папку TCIMG в новую библиотеку TCIMG_New.dll

tends=?$f254?55 exicn=$f250\TCIMG.dll||GLOBALTENDS<1> sends=$f212\Icons.txt||&?(?:[^\d])0*(\d+)!!3!!1!!, bends=<info=n8|GLOBALSENDS<1>|0|GLOBALEXICN<0>-1>||?Ffnc_numplus $GLOBALEXICN[GLOBALBENDS<1>]=;$f202\Mono8x8.ico lbicl=$GLOBALEXICN||$f250\TCIMG_New.dll||0||upd<1> tempz=55||1 ;; из библиотеки TCIMG.dll оставить заданные номеров значков, прописанных в файле Icons.txt, остальные значки заменить "пустышкой" (значком Mono8x8.ico) и сохранить в папку TCIMG в новую библиотеку TCIMG_New.dll


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru