View previous topic :: View next topic |
Author |
Message |
Orion9

Joined: 01 Jan 2024 Posts: 618
|
(Separately) Posted: Fri Jan 17, 2025 00:21 Post subject: |
|
|
AkulaBig wrote: | Не переключаюсь. просто к основной панели добавляю ПП |
Шутите? )
У вас обычная панель, которая переключается с главной. Единственное отличие - она похожа на главную (основную) панель, поскольку и была создана на её основе.
Кстати, для создания такой панели необязательно было использовать TCIMG, можно было просто скопировать основную панель и переименовать ее в User.bar (например в vbs-скрипте или bat-файле), а затем вызывать её пользовательской командой и накидывать кнопок. На Autorun можно сделать такое через ShellExec:
Code: | Func CopyFile(Source, Target, Delete = true)
If Delete Then
ShellExec /SW_HIDE /WAIT:2000 %COMSPEC% "/c del /f /q ""%Target%"""
If FileExist(Target) Then
ShowDarkHint("Ошибка удаления " & Target, 0)
Return false
Endif
EndIf
ShellExec /SW_HIDE /WAIT:2000 %COMSPEC% '/c copy /y /v "%Source%" "%Target%"'
If Not FileExist(Target) Then
ShowDarkHint("Ошибка копирования " & Target, 0)
Return false
Endif
Return true
EndFunc |
Основная функция может выглядеть так:
Code: | # Shift + F12
SetHotkeyAction /K:S /H:F12 CopyMainBar
Func CopyMainBar()
Local main = %COMMANDER_PATH% & "\Bars\Main.bar"
Local user = "D:\Temp\User.bar"
If CopyFile(main, user) Then
CommandExec("em_open_bar_path", user)
ShowDarkHint("Панель пользователя загружена")
EndIf
EndFunc
|
Разумеется, функциональная клавиша здесь только для примера, а пути к файлам необходимо указывать или передавать согласно поставленной задаче.
Кроме этого, сейчас чтобы вернуться на главную панель (т.е. осуществить обратное переключение), вам приходится выходить из ТС, что, на мой взгляд, является еще одним лишним шагом (помимо того, что панель User.bar приходится выбирать вручную в каталоге).
В самом простом варианте можно просто создать две пользовательские команды и повесить их на горячие клавиши: одна для вызова главной панели, другая для вызова User.bar. Но оставим это простым пользователям. Мы с вами в теме "Autorun", где каждый может стать Творцом и Корректором косяков Гислера Потому и делать мы будем красиво ))
Code: | # F12
SetHotkeyAction /H:F12 MainUserBar
Global BarNum = 1
Func MainUserBar()
Local bar, pinned = false
BarNum += 1
If BarNum > 2 Then BarNum = 1
If BarNum = 1 Then
CommandExec("em_open_bar", "Main.bar")
Return
Else
bar = "D:\Temp\User.bar"
If Not FileExist(bar) Then
ShowHint("Не найден: " & bar)
BarNum -= 1
Return
EndIf
EndIf
CommandExec("em_open_bar_path", bar)
If BarNum = 1 Then Return
Sleep(750)
If IsPressed(0x11) Then
pinned = true
ShowDarkHint("Панель пользователя закреплена", 750)
Return
EndIf
Sleep(3000)
If BarNum = 2 Then RunThread MainUserBar
EndFunc
|
Цикличное переключение панелей по F12. Пользовательская панель открывается только на 3 секунды, потом сворачивается и дает вернуться главной (удобно, если нужно запустить что-то из личных кнопок всего один раз; интервал можно изменить). Если сразу после открытия пользовательской панели нажать Ctrl, панель закрепится на экране до конца сессии. Если нужно вернуться на главную панель, перезапускать ТС необязательно: достаточно просто еще нажать раз F12 - и всё пойдет по кругу ))
P.S. Это был лишь пример, но вы можете серьезно развить его и адаптировать в своих целях. Можете, например, более продвинутый поиск User.bar сделать по списку, или учесть то, что функция будет запускаться на "чужом" компьютере, где пользователю нужна будет другая панель, или вообще не будет нужна никакая. Вариантов много.
Добавлено спустя 5 минут:
Code: | [em_open_bar]
cmd=OPENBAR
param=%|COMMANDER_PATH|\Bars\%A0
[em_open_bar_path]
cmd=OPENBAR
param=%A0
|
|
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 169
|
(Separately) Posted: Sat Jan 18, 2025 22:14 Post subject: |
|
|
С колонками пользователя так и не удалось запустить в ТС х64?
Бомбическая задумка. Очень хочется увидеть ее в своей сборке.
А может другим каким-нибудь путем пойти? Через скрипты можно что-то замутить? |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 618
|
(Separately) Posted: Sun Jan 19, 2025 14:00 Post subject: |
|
|
AkulaBig wrote: | С колонками пользователя так и не удалось запустить в ТС х64? |
К сожалению, пока не удалось. Loopback, посмотрел в чём может быть причина: оказалось, это галюны самого TC x64 - он тупо "гасит" подсказку клавишами-модификаторами и не даёт ей появиться.
AkulaBig wrote: | А может другим каким-нибудь путем пойти? Через скрипты можно что-то замутить? |
Пока остается только "лочить" её через переменную, что-то другое придумать мне не удалось. Недавно я собирал все скрипты, которые накопились за почти год использования Autorun, среди них есть и тот, что завязан на клоноки:
 Hidden text --------------------------------------------------
Подсказка в файловых панелях
Добавление информации клавишами-модификаторами
--------------------------------------------------
Ctrl - добавить данные MediaInfo
Ctrl+Shift - добавить данные WDX плагинов
Ctrl+Shift+Alt - добавить данные ExifTool
Ctrl+Shift+Win - добавить данные Accesschk
Ctrl+Win+Alt - добавить данные о правах доступа
Alt - добавить данные кастомных полей
--------------------------------------------------
В некоторых случаях, если комбинация клавиш не срабатывает (или плохо срабатывает), помогает смена порядка при нажатии, например, вместо Ctrl+Shift может заработать Shift+Ctrl. В 64-битной версии Total Commander при вызове подсказки клавиши-модификаторы не работают совсем. Одиночный Alt не работает ни в той, ни в другой версии (проверить работоспособность Alt можно только в экранной клавиатуре). Закрепление комбинаций клавиш хорошо работает в обоих версиях Total Commander.
--------------------------------------------------
Закрепление комбинаций клавиш (Lock)
--------------------------------------------------
CapsLock - закрепить данные MediaInfo
Ctrl+CapsLock - закрепить данные ExifTool
Shift+CapsLock - закрепить данные WDX плагинов
Alt+CapsLock - закрепить данные Accesschk
--------------------------------------------------
Нормальная работа клавиши CapsLock будет нарушена в окне ТС, но не в диалоговых окнах.
Переназначить клавишу CapsLock, как и другие комбинации клавиш, можно в скрипте autorun.cfg.
Сборкой TC это, конечно, не назовешь, но для тестов - самый раз. Да и не по силам мне целая сборка. Одно дело "ковыряться" в скриптах в свое удовольствие, находить какие-то интересные решения и делиться ими на форуме, и совсем другое дело - браться за официальную и публичную сборку, которая должна уметь работать в рамках любого сценария использования (разные системы, настройки, пути, права, разрешения экрана, dpi, масштабирование и прочее, прочее, прочее...). Именно поэтому я очень ценю и уважаю труд сборщиков. Какая бы сборка ни была - в ней можно всегда найти что-то интересное. |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 169
|
(Separately) Posted: Sun Jan 19, 2025 15:48 Post subject: |
|
|
Orion9 wrote: | Недавно я собирал все скрипты |
Я конечно-же скачал вашу сборку сразу-же. Но в ней тоже ТС х64 не работает. Ладно, будем думать. Мне не обязательно, чтобы через Ctrl инфа MediaInfo открывалась. Но вы-же ранее писали, что даже в функцию Hint входа нет. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 618
|
(Separately) Posted: Sun Jan 19, 2025 19:49 Post subject: |
|
|
AkulaBig wrote: | Но вы-же ранее писали, что даже в функцию Hint входа нет. |
Как выяснилось - есть. Проверить это можно экранной клавиатурой, где все комбинации работают. Autorun тут ни при делах, это очередной глюк TC x64.
AkulaBig wrote: | Мне не обязательно, чтобы через Ctrl инфа MediaInfo открывалась. |
Ну, там сейчас не только MediaInfo и прочие консольные утилиты. Главная фишка сейчас - возможность прикрепить к подсказке любые wdx-плагины и их сочетания, что может быть удобным, например, при работе или тестировании скриптов в WinScriptAdv. К тому же, CapsLock всё-таки работает в ТС х64 как-никак, а он бывает гораздо удобнее одиночного вызова с удержанием клавиш-модификаторов. И универсальность MediaInfo тоже сейчас оказалась как никогда кстати, зря я в свое время упрекал автора, что он увлёкся поддержкой слишком большого формата файлов, которые, на первый взгляд, не имеют никакого отношения к аудио и видео. |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 169
|
(Separately) Posted: Sun Jan 19, 2025 23:04 Post subject: |
|
|
Orion9 wrote: | Главная фишка сейчас - возможность прикрепить к подсказке любые wdx-плагины и их сочетания |
Дак для этого Autorun не нужен. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 618
|
(Separately) Posted: Mon Jan 20, 2025 00:19 Post subject: |
|
|
AkulaBig wrote: | Дак для этого Autorun не нужен. |
Может, и не нужен, всё зависит от конкретных задач. Кто-то скажет, что ему и подсказка не нужна для для таких дел, и будет в чем-то прав - наборы колонок ведь никто не отменял )
Где-то в середине февраля у меня будет неплохое окно, надо будет собрать все последние скрипты, которые были в теме, и оформить в новый архив. Число строк кода на Autorun перевалило за 5000 Но там еще надо чистку провести, а тем временем от утилиты TCASwitcher.exe я уже отказался в пользу скриптов ) |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 169
|
(Separately) Posted: Mon Jan 20, 2025 09:25 Post subject: |
|
|
Orion9 wrote: | тем временем от утилиты TCASwitcher.exe я уже отказался в пользу скриптов ) |
А я ей никогда не пользовался  |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 618
|
(Separately) Posted: Mon Jan 20, 2025 14:04 Post subject: |
|
|
AkulaBig wrote: | А я ей никогда не пользовался  |
А зачем же она у вас в сборке тогда?
Шутки шутками, а внутренние ассоциации вполне могут пригодиться. Это классный функционал, но у него есть недостатки: не очень удобный интерфейс и необходимость "прокачки" секции [Associations] для комфортного использования. Мало кто станет делать индивидуальное сопоставление расширений, но только так можно извлечь хоть какую-то пользу.
Вот и у вас в сборке полноценно расставлена только SumatraPDF, а на IrfanView, как я понимаю, вы уже поленились ))
А ведь могли бы сделать что-то вроде:
Code: | Filter10=*.b3d
Filter10.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,036
Filter10_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter11=*.bmp
Filter11.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,000
Filter11_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter12=*.cam
Filter12.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,001
Filter12_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter13=*.clp
Filter13.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,002
Filter13_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1"" |
Или перспектива "возиться " руками с десятками расширений вас напугала? ) А как вы хотели? По-другому ведь красиво не бывает - иногда нужно и руками поработать.) Главное не забывать про мудрый совет Николая Степановича "Глаза больших дел боятся, но руки-то делают" Выпил кружку кофе и вперёд - что там сотни расширений
Но попробуем пойти другим путём. В IrfanView есть библиотека Icons.dll в папке плагинов, я попробовал сделать на неё "map-файл" для дальнейшего удобства:
 Hidden text b3d=036
bmp=000
cam=001
clp=002
crw=037
dcm=003
dcx=004
dds=045
djvu=005
ecw=038
emf=006
eps=007
fpx=008
fsh=039
g3=009
gif=010
iff=011
img=012
jng=040
jp2=013
jpg=014
kdk=015
mng=041
nlm=016
pbm=017
pcd=018
pcx=019
pgm=020
png=021
ppm=022
psd=023
psp=024
ras=025
raw=042
rle=026
sff=027
sfw=028
sgi=029
sid=043
tga=030
tiff=031
ttf=044
wbmp=032
wmf=033
xbm=034
xpm=035
Тут пока без "фокусов": просто руками сопоставил выгруженные .ico, что заняло буквально несколько минут. Но теперь подключаем Autorun:
Code: | # Alt + "["
SetHotkeyAction /K:A /V:219 IconMapTest 0
Func IconMapTest(lParam)
Local map = %COMMANDER_PATH% & "\Icons\IrfanView.map", _
lib = '%COMMANDER_PATH%\Icons\IrfanView.dll', _
cmd = '""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""', _
idx = 10
AssocIconsMap(map, idx, lib, cmd)
EndFunc
Func AssocIconsMap(MapFile, StartIdx, IconLib, CmdOpen)
Local out, ext, idx
If Not FileExist(MapFile) Then
ShowHint("Не найден " & MapFile)
Return
Endif
ProcessExecGetOutput out %COMSPEC% '/c type "%MapFile%"'
Local aMap = List(), j
aMap.Text = out
out = ""
For j = 0 To aMap.Count - 1
ext = StrPart(aMap[j], "=", 1)
idx = StrPart(aMap[j], "=", 2)
out &= auCRLF & "Filter" & StartIdx + j & "=*." & ext
out &= auCRLF & "Filter" & StartIdx + j & ".icon=" & IconLib & ","& idx
out &= auCRLF & "Filter" & StartIdx + j & "_open=" & CmdOpen
Next
ClipPut(out)
ShowHint("Скопировано в буфер.")
EndFunc |
Запускаем скрипт, и получаем в буфере:
 Hidden text Filter10=*.b3d
Filter10.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,036
Filter10_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter11=*.bmp
Filter11.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,000
Filter11_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter12=*.cam
Filter12.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,001
Filter12_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter13=*.clp
Filter13.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,002
Filter13_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter14=*.crw
Filter14.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,037
Filter14_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter15=*.dcm
Filter15.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,003
Filter15_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter16=*.dcx
Filter16.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,004
Filter16_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter17=*.dds
Filter17.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,045
Filter17_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter18=*.djvu
Filter18.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,005
Filter18_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter19=*.ecw
Filter19.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,038
Filter19_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter20=*.emf
Filter20.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,006
Filter20_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter21=*.eps
Filter21.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,007
Filter21_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter22=*.fpx
Filter22.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,008
Filter22_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter23=*.fsh
Filter23.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,039
Filter23_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter24=*.g3
Filter24.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,009
Filter24_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter25=*.gif
Filter25.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,010
Filter25_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter26=*.iff
Filter26.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,011
Filter26_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter27=*.img
Filter27.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,012
Filter27_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter28=*.jng
Filter28.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,040
Filter28_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter29=*.jp2
Filter29.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,013
Filter29_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter30=*.jpg
Filter30.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,014
Filter30_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter31=*.kdk
Filter31.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,015
Filter31_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter32=*.mng
Filter32.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,041
Filter32_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter33=*.nlm
Filter33.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,016
Filter33_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter34=*.pbm
Filter34.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,017
Filter34_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter35=*.pcd
Filter35.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,018
Filter35_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter36=*.pcx
Filter36.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,019
Filter36_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter37=*.pgm
Filter37.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,020
Filter37_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter38=*.png
Filter38.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,021
Filter38_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter39=*.ppm
Filter39.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,022
Filter39_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter40=*.psd
Filter40.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,023
Filter40_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter41=*.psp
Filter41.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,024
Filter41_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter42=*.ras
Filter42.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,025
Filter42_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter43=*.raw
Filter43.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,042
Filter43_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter44=*.rle
Filter44.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,026
Filter44_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter45=*.sff
Filter45.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,027
Filter45_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter46=*.sfw
Filter46.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,028
Filter46_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter47=*.sgi
Filter47.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,029
Filter47_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter48=*.sid
Filter48.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,043
Filter48_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter49=*.tga
Filter49.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,030
Filter49_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter50=*.tiff
Filter50.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,031
Filter50_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter51=*.ttf
Filter51.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,044
Filter51_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter52=*.wbmp
Filter52.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,032
Filter52_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter53=*.wmf
Filter53.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,033
Filter53_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter54=*.xbm
Filter54.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,034
Filter54_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Filter55=*.xpm
Filter55.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,035
Filter55_open=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1""
Вот это другое дело. Индекс фильтра можно менять, как и команду открытия и путь к библиотеке.
 P.S. Чешуться руки, конечно, и другие библиотеки "размапить", но всему свое время... И, кстати, в "свое время" на PotPlayer мне пришлось практически всё вручную делать.)) |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 169
|
(Separately) Posted: Mon Jan 20, 2025 15:11 Post subject: |
|
|
Orion9 wrote: |
А зачем же она у вас в сборке тогда?
|
Вы меня с кем-то путаете.
Orion9 wrote: |
Вот и у вас в сборке полноценно расставлена только SumatraPDF, а на IrfanView, как я понимаю, вы уже поленились ))
|
Опять вы меня с кем-то путаете. У меня Ирфан и другие полноценно прописаны. Просто для Ирфан не требуется прописка каждого расширения отдельно. Он поддерживает обработку иконок и достаточно расширения прописать гуртом, чтобы Ирфан показывал для каждого свою иконку. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 618
|
(Separately) Posted: Tue Jan 21, 2025 00:19 Post subject: |
|
|
AkulaBig wrote: | Вы меня с кем-то путаете. |
И то правда.) Почему-то был уверен, что вы пользуетесь этой утилитой, да еще и настолько, что проверить не удосужился Что ж, признаю свой зашквар - бывает )) Вероятно то, что файл Associations.ini у вас вынесен ридеректом в отдельный каталог совместно с другими ini-файлами, и ввело меня в заблуждение, но это слабое оправдание в данном случае.
AkulaBig wrote: | У меня Ирфан и другие полноценно прописаны. |
А зачем вам Ирфан во внутренних ассоциациях, в таком случае? Не то, чтобы я отрицал подобное использование, но мне кажется, вы некоторую путаницу создаете. Допустим, пользователь поставит ACDSee, и все значки у него в ТС будут от ACDSee, а запускаться будет ваш IrfanView. При этом, если пользователь никогда не слышал о внутренних ассоциациях, ему еще изрядно "попарится" придется, прежде чем он настроит всё под себя. Такие утилиты, как TCASwitcher, как раз позволяют в один клик отключить все внутренние ассоциации, а при необходимости - включить их обратно. При этом "внутренние", ИМХО, должны быть именно "внутренними", т.е. со всеми своими значками. Если пользователь, например, установил в систему ACDSee, то при включении внутренних ассоциаций он должен видить значки IrfanView, а при выключении - значки ACDSee. Я себе это так представлял.
Засёк время: ровно 15 минут у меня ушло, чтобы сделать разметку PotPlayer.dll:
 Hidden text 3g2=41
3gp2=42
3gp=28
3gpp=40
aac=63
ac3=62
amr=46
ani.neo=57
ape=64
asf=03
ass=73
asx=04
avi=01
dat=15
divx=02
dmakm=31
dts=67
flac=68
flv=32
idx=75
ifo=17
k3g=29
lmp4=27
m1a=49
m1v=10
m2a=50
m2ts=77
m2v=11
m3u=53
m4a=51
m4b=39
m4p=38
m4v=26
mgv=58
mka=69
mkv=20
mod=65
mov=23
mp2=59
mp2v=37
mp3=60
mp4=25
mpa=48
mpc=66
mpe=12
mpeg=13
mpg=14
mpv2=36
mqv=24
mts=78
mxf=79
ogg=61
ogm=19
pls=54
qt=45
ra=52
ram=43
rm=21
rmvb=22
rpm=44
skm=30
smi=71
srt=72
ssa=74
sub=76
swf=56
tp=16
tpr=35
trp=34
ts=33
vob=18
wav=70
wax=55
wm=05
wma=47
wmp=06
wmv=07
wmx=08
wvx=09
Добавим к нему IrfanView:
 Hidden text [Associations]
Filter1=*.3g2
Filter1.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,41
Filter1_open=""%COMMANDER_VIDEO%" "%1""
Filter2=*.3gp2
Filter2.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,42
Filter2_open=""%COMMANDER_VIDEO%" "%1""
Filter3=*.3gp
Filter3.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,28
Filter3_open=""%COMMANDER_VIDEO%" "%1""
Filter4=*.3gpp
Filter4.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,40
Filter4_open=""%COMMANDER_VIDEO%" "%1""
Filter5=*.aac
Filter5.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,63
Filter5_open=""%COMMANDER_VIDEO%" "%1""
Filter6=*.ac3
Filter6.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,62
Filter6_open=""%COMMANDER_VIDEO%" "%1""
Filter7=*.amr
Filter7.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,46
Filter7_open=""%COMMANDER_VIDEO%" "%1""
Filter8=*.ani.neo
Filter8.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,57
Filter8_open=""%COMMANDER_VIDEO%" "%1""
Filter9=*.ape
Filter9.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,64
Filter9_open=""%COMMANDER_VIDEO%" "%1""
Filter10=*.asf
Filter10.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,03
Filter10_open=""%COMMANDER_VIDEO%" "%1""
Filter11=*.ass
Filter11.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,73
Filter11_open=""%COMMANDER_VIDEO%" "%1""
Filter12=*.asx
Filter12.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,04
Filter12_open=""%COMMANDER_VIDEO%" "%1""
Filter13=*.avi
Filter13.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,01
Filter13_open=""%COMMANDER_VIDEO%" "%1""
Filter14=*.dat
Filter14.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,15
Filter14_open=""%COMMANDER_VIDEO%" "%1""
Filter15=*.divx
Filter15.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,02
Filter15_open=""%COMMANDER_VIDEO%" "%1""
Filter16=*.dmakm
Filter16.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,31
Filter16_open=""%COMMANDER_VIDEO%" "%1""
Filter17=*.dts
Filter17.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,67
Filter17_open=""%COMMANDER_VIDEO%" "%1""
Filter18=*.flac
Filter18.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,68
Filter18_open=""%COMMANDER_VIDEO%" "%1""
Filter19=*.flv
Filter19.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,32
Filter19_open=""%COMMANDER_VIDEO%" "%1""
Filter20=*.idx
Filter20.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,75
Filter20_open=""%COMMANDER_VIDEO%" "%1""
Filter21=*.ifo
Filter21.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,17
Filter21_open=""%COMMANDER_VIDEO%" "%1""
Filter22=*.k3g
Filter22.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,29
Filter22_open=""%COMMANDER_VIDEO%" "%1""
Filter23=*.lmp4
Filter23.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,27
Filter23_open=""%COMMANDER_VIDEO%" "%1""
Filter24=*.m1a
Filter24.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,49
Filter24_open=""%COMMANDER_VIDEO%" "%1""
Filter25=*.m1v
Filter25.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,10
Filter25_open=""%COMMANDER_VIDEO%" "%1""
Filter26=*.m2a
Filter26.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,50
Filter26_open=""%COMMANDER_VIDEO%" "%1""
Filter27=*.m2ts
Filter27.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,77
Filter27_open=""%COMMANDER_VIDEO%" "%1""
Filter28=*.m2v
Filter28.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,11
Filter28_open=""%COMMANDER_VIDEO%" "%1""
Filter29=*.m3u
Filter29.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,53
Filter29_open=""%COMMANDER_VIDEO%" "%1""
Filter30=*.m4a
Filter30.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,51
Filter30_open=""%COMMANDER_VIDEO%" "%1""
Filter31=*.m4b
Filter31.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,39
Filter31_open=""%COMMANDER_VIDEO%" "%1""
Filter32=*.m4p
Filter32.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,38
Filter32_open=""%COMMANDER_VIDEO%" "%1""
Filter33=*.m4v
Filter33.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,26
Filter33_open=""%COMMANDER_VIDEO%" "%1""
Filter34=*.mgv
Filter34.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,58
Filter34_open=""%COMMANDER_VIDEO%" "%1""
Filter35=*.mka
Filter35.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,69
Filter35_open=""%COMMANDER_VIDEO%" "%1""
Filter36=*.mkv
Filter36.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,20
Filter36_open=""%COMMANDER_VIDEO%" "%1""
Filter37=*.mod
Filter37.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,65
Filter37_open=""%COMMANDER_VIDEO%" "%1""
Filter38=*.mov
Filter38.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,23
Filter38_open=""%COMMANDER_VIDEO%" "%1""
Filter39=*.mp2
Filter39.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,59
Filter39_open=""%COMMANDER_VIDEO%" "%1""
Filter40=*.mp2v
Filter40.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,37
Filter40_open=""%COMMANDER_VIDEO%" "%1""
Filter41=*.mp3
Filter41.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,60
Filter41_open=""%COMMANDER_VIDEO%" "%1""
Filter42=*.mp4
Filter42.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,25
Filter42_open=""%COMMANDER_VIDEO%" "%1""
Filter43=*.mpa
Filter43.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,48
Filter43_open=""%COMMANDER_VIDEO%" "%1""
Filter44=*.mpc
Filter44.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,66
Filter44_open=""%COMMANDER_VIDEO%" "%1""
Filter45=*.mpe
Filter45.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,12
Filter45_open=""%COMMANDER_VIDEO%" "%1""
Filter46=*.mpeg
Filter46.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,13
Filter46_open=""%COMMANDER_VIDEO%" "%1""
Filter47=*.mpg
Filter47.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,14
Filter47_open=""%COMMANDER_VIDEO%" "%1""
Filter48=*.mpv2
Filter48.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,36
Filter48_open=""%COMMANDER_VIDEO%" "%1""
Filter49=*.mqv
Filter49.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,24
Filter49_open=""%COMMANDER_VIDEO%" "%1""
Filter50=*.mts
Filter50.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,78
Filter50_open=""%COMMANDER_VIDEO%" "%1""
Filter51=*.mxf
Filter51.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,79
Filter51_open=""%COMMANDER_VIDEO%" "%1""
Filter52=*.ogg
Filter52.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,61
Filter52_open=""%COMMANDER_VIDEO%" "%1""
Filter53=*.ogm
Filter53.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,19
Filter53_open=""%COMMANDER_VIDEO%" "%1""
Filter54=*.pls
Filter54.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,54
Filter54_open=""%COMMANDER_VIDEO%" "%1""
Filter55=*.qt
Filter55.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,45
Filter55_open=""%COMMANDER_VIDEO%" "%1""
Filter56=*.ra
Filter56.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,52
Filter56_open=""%COMMANDER_VIDEO%" "%1""
Filter57=*.ram
Filter57.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,43
Filter57_open=""%COMMANDER_VIDEO%" "%1""
Filter58=*.rm
Filter58.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,21
Filter58_open=""%COMMANDER_VIDEO%" "%1""
Filter59=*.rmvb
Filter59.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,22
Filter59_open=""%COMMANDER_VIDEO%" "%1""
Filter60=*.rpm
Filter60.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,44
Filter60_open=""%COMMANDER_VIDEO%" "%1""
Filter61=*.skm
Filter61.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,30
Filter61_open=""%COMMANDER_VIDEO%" "%1""
Filter62=*.smi
Filter62.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,71
Filter62_open=""%COMMANDER_VIDEO%" "%1""
Filter63=*.srt
Filter63.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,72
Filter63_open=""%COMMANDER_VIDEO%" "%1""
Filter64=*.ssa
Filter64.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,74
Filter64_open=""%COMMANDER_VIDEO%" "%1""
Filter65=*.sub
Filter65.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,76
Filter65_open=""%COMMANDER_VIDEO%" "%1""
Filter66=*.swf
Filter66.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,56
Filter66_open=""%COMMANDER_VIDEO%" "%1""
Filter67=*.tp
Filter67.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,16
Filter67_open=""%COMMANDER_VIDEO%" "%1""
Filter68=*.tpr
Filter68.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,35
Filter68_open=""%COMMANDER_VIDEO%" "%1""
Filter69=*.trp
Filter69.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,34
Filter69_open=""%COMMANDER_VIDEO%" "%1""
Filter70=*.ts
Filter70.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,33
Filter70_open=""%COMMANDER_VIDEO%" "%1""
Filter71=*.vob
Filter71.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,18
Filter71_open=""%COMMANDER_VIDEO%" "%1""
Filter72=*.wav
Filter72.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,70
Filter72_open=""%COMMANDER_VIDEO%" "%1""
Filter73=*.wax
Filter73.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,55
Filter73_open=""%COMMANDER_VIDEO%" "%1""
Filter74=*.wm
Filter74.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,05
Filter74_open=""%COMMANDER_VIDEO%" "%1""
Filter75=*.wma
Filter75.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,47
Filter75_open=""%COMMANDER_VIDEO%" "%1""
Filter76=*.wmp
Filter76.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,06
Filter76_open=""%COMMANDER_VIDEO%" "%1""
Filter77=*.wmv
Filter77.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,07
Filter77_open=""%COMMANDER_VIDEO%" "%1""
Filter78=*.wmx
Filter78.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,08
Filter78_open=""%COMMANDER_VIDEO%" "%1""
Filter79=*.wvx
Filter79.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,09
Filter79_open=""%COMMANDER_VIDEO%" "%1""
Filter80=*.b3d
Filter80.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,036
Filter80_open=""%COMMANDER_VIEWER%" "%1""
Filter81=*.bmp
Filter81.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,000
Filter81_open=""%COMMANDER_VIEWER%" "%1""
Filter82=*.cam
Filter82.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,001
Filter82_open=""%COMMANDER_VIEWER%" "%1""
Filter83=*.clp
Filter83.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,002
Filter83_open=""%COMMANDER_VIEWER%" "%1""
Filter84=*.crw
Filter84.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,037
Filter84_open=""%COMMANDER_VIEWER%" "%1""
Filter85=*.dcm
Filter85.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,003
Filter85_open=""%COMMANDER_VIEWER%" "%1""
Filter86=*.dcx
Filter86.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,004
Filter86_open=""%COMMANDER_VIEWER%" "%1""
Filter87=*.dds
Filter87.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,045
Filter87_open=""%COMMANDER_VIEWER%" "%1""
Filter88=*.djvu
Filter88.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,005
Filter88_open=""%COMMANDER_VIEWER%" "%1""
Filter89=*.ecw
Filter89.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,038
Filter89_open=""%COMMANDER_VIEWER%" "%1""
Filter90=*.emf
Filter90.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,006
Filter90_open=""%COMMANDER_VIEWER%" "%1""
Filter91=*.eps
Filter91.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,007
Filter91_open=""%COMMANDER_VIEWER%" "%1""
Filter92=*.fpx
Filter92.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,008
Filter92_open=""%COMMANDER_VIEWER%" "%1""
Filter93=*.fsh
Filter93.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,039
Filter93_open=""%COMMANDER_VIEWER%" "%1""
Filter94=*.g3
Filter94.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,009
Filter94_open=""%COMMANDER_VIEWER%" "%1""
Filter95=*.gif
Filter95.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,010
Filter95_open=""%COMMANDER_VIEWER%" "%1""
Filter96=*.iff
Filter96.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,011
Filter96_open=""%COMMANDER_VIEWER%" "%1""
Filter97=*.img
Filter97.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,012
Filter97_open=""%COMMANDER_VIEWER%" "%1""
Filter98=*.jng
Filter98.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,040
Filter98_open=""%COMMANDER_VIEWER%" "%1""
Filter99=*.jp2
Filter99.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,013
Filter99_open=""%COMMANDER_VIEWER%" "%1""
Filter100=*.jpg
Filter100.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,014
Filter100_open=""%COMMANDER_VIEWER%" "%1""
Filter101=*.kdk
Filter101.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,015
Filter101_open=""%COMMANDER_VIEWER%" "%1""
Filter102=*.mng
Filter102.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,041
Filter102_open=""%COMMANDER_VIEWER%" "%1""
Filter103=*.nlm
Filter103.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,016
Filter103_open=""%COMMANDER_VIEWER%" "%1""
Filter104=*.pbm
Filter104.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,017
Filter104_open=""%COMMANDER_VIEWER%" "%1""
Filter105=*.pcd
Filter105.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,018
Filter105_open=""%COMMANDER_VIEWER%" "%1""
Filter106=*.pcx
Filter106.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,019
Filter106_open=""%COMMANDER_VIEWER%" "%1""
Filter107=*.pgm
Filter107.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,020
Filter107_open=""%COMMANDER_VIEWER%" "%1""
Filter108=*.png
Filter108.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,021
Filter108_open=""%COMMANDER_VIEWER%" "%1""
Filter109=*.ppm
Filter109.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,022
Filter109_open=""%COMMANDER_VIEWER%" "%1""
Filter110=*.psd
Filter110.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,023
Filter110_open=""%COMMANDER_VIEWER%" "%1""
Filter111=*.psp
Filter111.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,024
Filter111_open=""%COMMANDER_VIEWER%" "%1""
Filter112=*.ras
Filter112.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,025
Filter112_open=""%COMMANDER_VIEWER%" "%1""
Filter113=*.raw
Filter113.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,042
Filter113_open=""%COMMANDER_VIEWER%" "%1""
Filter114=*.rle
Filter114.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,026
Filter114_open=""%COMMANDER_VIEWER%" "%1""
Filter115=*.sff
Filter115.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,027
Filter115_open=""%COMMANDER_VIEWER%" "%1""
Filter116=*.sfw
Filter116.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,028
Filter116_open=""%COMMANDER_VIEWER%" "%1""
Filter117=*.sgi
Filter117.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,029
Filter117_open=""%COMMANDER_VIEWER%" "%1""
Filter118=*.sid
Filter118.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,043
Filter118_open=""%COMMANDER_VIEWER%" "%1""
Filter119=*.tga
Filter119.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,030
Filter119_open=""%COMMANDER_VIEWER%" "%1""
Filter120=*.tiff
Filter120.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,031
Filter120_open=""%COMMANDER_VIEWER%" "%1""
Filter121=*.ttf
Filter121.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,044
Filter121_open=""%COMMANDER_VIEWER%" "%1""
Filter122=*.wbmp
Filter122.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,032
Filter122_open=""%COMMANDER_VIEWER%" "%1""
Filter123=*.wmf
Filter123.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,033
Filter123_open=""%COMMANDER_VIEWER%" "%1""
Filter124=*.xbm
Filter124.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,034
Filter124_open=""%COMMANDER_VIEWER%" "%1""
Filter125=*.xpm
Filter125.icon=%COMMANDER_PATH%\Icons\IrfanView.dll,035
Filter125_open=""%COMMANDER_VIEWER%" "%1""
Полученный файл можно сохранить в Associations.ini и опробовать на чистом Тотале (пути к библиотекам, конечно, должны быть правильными). На чистом ТС всё влёт подхватилось и корректно отображается. Теперь можно просто запустить TCASwitcher прямо из каталога и посмотреть, как отключаются и включаются иконки, а вместе с ними и ассоциации.
P.S. Кстати, мне понравилась ваша идея с панелью пользователя и добавлением в "хвост" основной панели дополнительных кнопок. Хочу найти ей применение в своем ТС, поэтому изменил чуть-чуть предыдущий пример, но все-равно он пока еще в режиме тестов:
 Hidden text Code: | # Shift + F12
SetHotkeyAction /K:S /H:F12 MainUserBar
Global BarNum = 1, BarPinned = false
Func MainUserBar()
Local bar, i
BarNum += 1
If BarNum > 2 Then BarNum = 1
If BarNum = 1 Then
BarPinned = false
CommandExec("em_open_bar", "Main.bar")
Return
Else
bar = "D:\Temp\User.bar"
If Not FileExist(bar) Then
ShowHint("Не найден: " & bar)
BarNum -= 1
Return
EndIf
EndIf
CommandExec("em_open_bar_path", bar)
For i = 1 to 30
If IsPressed(0x11) Then Break
Sleep(25)
Next
If IsPressed(0x11) Then
BarPinned = true
ShowDarkHint("Панель пользователя закреплена", 750)
Return
EndIf
Sleep(2500)
If BarNum = 2 And BarPinned = false Then MainUserBar
EndFunc |
|
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 169
|
(Separately) Posted: Tue Jan 21, 2025 06:32 Post subject: |
|
|
Orion9 wrote: |
Допустим, пользователь поставит ACDSee, и все значки у него в ТС будут от ACDSee, а запускаться будет ваш IrfanView. |
Просто я об этом не думал. Я-то внешние ассоциации делаю на Ирфан и другие прожки внутри сборки. На которых основаны мои плагины. И казалось-бы зачем пользователю моей сборки устанавливать ACDSee. Но может быть вы и правы. Кто-то ведь пользуется сборками с 10-ю браузерами. Подумаю.
Orion9 wrote: |
Добавим к нему IrfanView:
|
Я все-же не пойму, зачем вы Ирфан разбираете по значкам, когда он прекрасно работает с одной строкой.
Orion9 wrote: |
Засёк время: ровно 15 минут у меня ушло, чтобы сделать разметку PotPlayer.dll:
|
Для меня внутренние - это которые находятся внутри моей сборки. А в моей сборке PotPlayer никогда не будет. Над MPC еще как-то можно подумать. Кстати, я еще немного разобрался с ним. Оказывается в него кодеки вшиты, даже если еще и наружные LAV-фильтры используются. Вот найти-бы проигрыватель, который полностью-бы можно было натравить на внешние кодеки, причем в портабельном режиме. А то делать масло масляное совершенно не хочется, а иметь портабельную сборку хочется. А плеер ТС только LAV подключает.
Orion9 wrote: |
P.S. Кстати, мне понравилась ваша идея с панелью пользователя и добавлением в "хвост" основной панели дополнительных кнопок. |
Вообще идея отключения ее без перезагрузки не лишена смысла. Но именно для ПП, лежащей снаружи сборки. То-есть не стандартная подмена одной панели другой. Но с этим есть проблемы. Так что надо думать, как это сделать. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 618
|
(Separately) Posted: Tue Jan 21, 2025 14:05 Post subject: |
|
|
AkulaBig wrote: | Я все-же не пойму, зачем вы Ирфан разбираете по значкам, когда он прекрасно работает с одной строкой. |
Плюсы такого разбора очевидны: каждый значок можно индивидуально назначить. Мне, например, не нравятся некоторые "салатовые" значки IrfanView, поэтому значительная часть значков у меня берется из других библиотек, например из FSView.dll или той же ACDSee.dll. Конечно, такое сопоставление придется делать вручную, но зато на панелях ТС будут только те значки, которые вам нравятся. Более того, при простом копировании папки ТС, именно благодаря тому, что все значки и ассоциации выстроены "внутренне", всё будет работать и отображаться так, как вы привыкли, даже на чистой Windows, где нет никаких просмотрщиков и другого установленного софта.
Map-файл на FSView.dll:
 Hidden text arw=18
bmp=00
cr2=01
crw=02
dwg=14
gif=03
jpg=04
mrw=15
nef=05
orf=12
pcx=06
pef=16
png=07
psd=08
raf=13
rw2=19
srf=17
tga=09
tif=10
wmf=11
Доработал код и оформил в виде кнопки:
 Hidden text Code: | Func IconMap(lParam)
Local map, lib, cmd, idx = 0
Local cfg = %COMMANDER_PATH% & "\Ini\IconsMap.ini"
If Not FileExist(cfg) Then
ShowHint("Не найден " & cfg)
Return
Endif
If IsPressed(0x10) Then
CommandExec /CD:S %cfg%
Return
Endif
If Not IsPressed(0x11) Then
ShellExec "%cfg%"
Return
EndIf
IniRead map %cfg% "Config" "MapFile"
IniRead lib %cfg% "Config" "IconLib"
IniRead cmd %cfg% "Config" "CmdOpen"
IniRead idx %cfg% "Config" "Index" 1
If Not FileExist(map) Then
ShowHint("Не найден " & map)
Return
Endif
AssocIconsMap(map, idx, lib, cmd)
EndFunc
Func AssocIconsMap(MapFile, StartIdx, IconLib, CmdOpen)
Local out, ext, idx
ProcessExecGetOutput out %COMSPEC% '/c type "%MapFile%"'
Local aMap = List(), j
aMap.Text = out
out = ""
For j = 0 To aMap.Count - 1
ext = StrPart(aMap[j], "=", 1)
idx = StrPart(aMap[j], "=", 2)
out &= auCRLF & "Filter" & StartIdx + j & "=*." & ext
out &= auCRLF & "Filter" & StartIdx + j & ".icon=" & IconLib & ","& idx
out &= auCRLF & "Filter" & StartIdx + j & "_open=" & CmdOpen
Next
ClipPut(out)
ShowHint("Скопировано в буфер.")
EndFunc
|
 Hidden text Code: | TOTALCMD#BAR#DATA
61004
%COMMANDER_EXE%
Создание [Associations]|Ctrl - Создание новых ключей
1
-1
|
Теперь параметрами операции можно управлять через \Ini\IconsMap.ini. Файл должен существовать:
 Hidden text Code: | [Config]
MapFile=%COMMANDER_PATH%\Icons\PotPlayer.map
IconLib=%COMMANDER_PATH%\Icons\PotPlayer.dll
;MapFile=%COMMANDER_PATH%\Icons\IrfanView.map
;IconLib=%COMMANDER_PATH%\Icons\IrfanView.dll
Index=80
;CmdOpen=""%COMMANDER_VIEWER%" "%1""
CmdOpen=""%COMMANDER_PATH%\Plugins\wlx\TCIrfanView\IrfanView\i_view32.exe" "%1"" |
AkulaBig wrote: | А в моей сборке PotPlayer никогда не будет...а иметь портабельную сборку хочется. |
Именно потому, что раньше в ТС не было своего плеера, я прикручивал к нему PotPlayer. Но и сейчас отказываться от этого не буду - уже привык, что он на борту и со всеми внутренними связями и значками. Кстати, у PotPlayer три библиотеки значков. Связав ассоциации, как на примере выше, можно добиться очень интересного эффекта: простым переименованием или заменой PotPlayer.dll - меняются все значки сразу. Помимо этого, интересного эффекта можно добится, если не указывать прямого пути к плееру, а сделать ассоциацию с переменной окружения, например %COMMANDER_VIDEO%. Теперь достаточно в Autorun менять содержимое этой переменной на лету (или только при запуске), чтобы указывать, кто должен открывать эти типы файлов.
Еще один шикарный эффект. Из справочника по ключам:
Russian.cedf wrote: | Команда ***имя_внутренней_команды позволяет выполнить для файла указанного типа заданную встроенную или пользовательскую команду TC, в т.ч. с параметрами (в последнем случае указывается не только имя команды, но и соответствующий параметр или их набор, причём параметры, содержащие запятую, должны быть взяты в двойные кавычки). Внутренние команды, не начинающиеся с префикса cm_ или em, не требуют при назначении начальных звёздочек (примеры: OPENTABS %1% для TAB-файла, OPENBARMENU %1% для BAR-файла), также для них поддерживаются во внутренних ассоциациях шаблоны-параметры наподобие %P%N.
|
Раньше у меня была такая ассоциация:
Code: | Filter14=*.dll;*.ocx;*.ax
Filter14_open=""%COMMANDER_EXE%" /S=L:Piclview "%1""
Filter14.icon=* |
Но оказывается можно запросто вызывать функцию Autorun по коду:
Code: | Filter14_open=***61005 |
Это открывает некоторые возможности. Например, можно вызывать действие с клавишей-модификатором:
Code: | RegisterCommand 61005 "AssocDllOpenCmd"
Func AssocDllOpenCmd(lParam)
If IsPressed(0x5B) Then
ShowHint("Win")
Return
EndIf
If IsPressed(0x10) Then
IconsPanel()
Else
#SendCommand cm_List
p = RequestCopyDataInfo("SP")
n = RequestCopyDataInfo("SN")
f = p & n
ShellExec %COMMANDER_EXE% '/S=L:Piclview "%f%""'
EndIf
EndFunc
|
Здесь с зажатым Shift вызывается функция IconsPanel, которая загружает иконки на главную панель, а простой вызов запускает Листер, предподчительно с просмотром иконок, если он есть. Функция IconsPanel:
 Hidden text Code: | RegisterCommand 62005 "IconsPanel"
Func IconsPanel(Silent = 0)
Local p, n, f, hint, icons
p = RequestCopyDataInfo("SP")
n = RequestCopyDataInfo("SN")
f = p & n
If Not FileExist(f) Then
ShowHint("Файл не существует " & f)
Return
Endif
If StrPos(FileGetAttr(f), "D") Then
ShowHint("Каталог")
Return
Endif
obj = Plugin("IconLibrary")
If ERROR = 0 then
obj.FileName = f
icons = obj.GetValue(0)
If icons > 0 then
hint = "Иконок: " & icons
CreateIconsBar(f, icons)
Else
hint = "Нет иконок"
Endif
hint &= & auCRLF & "Файл " & f
Free(obj)
Else
hint = "Plugin Error " & ERROR
Endif
If icons = 0 Then ShowHint(hint)
EndFunc
Func CreateIconsBar(FileName, Icons)
Local p = BarsPath
Local n = "Auto_icons"
Local bar = p & n & ".bar", i = 0
ShowDarkHint("Загрузка иконок", 0)
If Not CreateNewBar(p, n) Then
ShowDarkHint("Отмена операции", 0)
Return
EndIf
For i = 2 to Icons+1
IniWrite %bar% "Buttonbar" %"'Cmd' & %i%" "100000"
IniWrite %bar% "Buttonbar" %"'Menu' & %i%" %"%i%-2"
IniWrite %bar% "Buttonbar" %"'Button' & %i%" %"%FileName% & ','& %i%-2"
Next
IniWrite %bar% "Buttonbar" "Buttoncount" %"%Icons%+1"
ShowDarkHint("Панель." & auCRLF & i-1 & " кнопок создано.", 0)
CommandExec("em_open_icons_panel")
EndFunc |
AkulaBig wrote: | Но именно для ПП, лежащей снаружи сборки. |
Ну, мне-то проще: не нужно заботится о том, чтобы панель никуда не "уплыла"  |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 169
|
(Separately) Posted: Wed Jan 22, 2025 12:45 Post subject: |
|
|
ТС подкинул очередной сюрприз. CustomFields не обновляются по отработанной схеме. Только через перезагрузку. Пробовал обновить панели командой cm_RereadSource. Не помогает. Нет-ли у вас каких-нибудь соображений по этому поводу? |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 618
|
(Separately) Posted: Wed Jan 22, 2025 17:58 Post subject: |
|
|
AkulaBig wrote: | ТС подкинул очередной сюрприз. |
Это он умеет ))
А если попробовать команды:
Code: | cm_LeftNextCustomView
cm_LeftPrevCustomView
cm_RightNextCustomView
cm_RightPrevCustomView |
Есть шанс, что простимулируют коммандера
P.S.
Автономный код кнопки для загрузки иконок на главную панель (предыдущий был завязан на другие модули):
 autorun.cfg Code: | RegisterCommand 62005 "IconsPanel"
Global BarsPath = %COMMANDER_PATH% & "\Bars\"
Func IconsPanel(Silent = 0)
Local p, n, f, hint, icons
p = RequestCopyDataInfo("SP")
n = RequestCopyDataInfo("SN")
f = p & n
If Not FileExist(f) Then
ShowHint("Файл не существует " & f)
Return
Endif
If StrPos(FileGetAttr(f), "D") Then
ShowHint("Каталог")
Return
Endif
obj = Plugin("IconLibrary")
If ERROR = 0 then
obj.FileName = f
icons = obj.GetValue(0)
If icons > 0 then
hint = "Иконок: " & icons
CreateIconsBar(f, icons)
Else
hint = "Нет иконок"
Endif
hint &= & auCRLF & "Файл " & f
Free(obj)
Else
hint = "Plugin Error " & ERROR
Endif
If icons = 0 Then ShowHint(hint)
EndFunc
Func CreateIconsBar(FileName, Icons)
Local p = BarsPath
Local n = "Auto_icons"
Local bar = p & n & ".bar", i = 0
ShowDarkHint("Загрузка иконок", 0)
If Not CreateNewBar(p, n) Then
ShowDarkHint("Отмена операции", 0)
Return
EndIf
For i = 2 to Icons+1
IniWrite %bar% "Buttonbar" %"'Cmd' & %i%" "100000"
IniWrite %bar% "Buttonbar" %"'Menu' & %i%" %"%i%-2"
IniWrite %bar% "Buttonbar" %"'Button' & %i%" %"%FileName% & ','& %i%-2"
Next
IniWrite %bar% "Buttonbar" "Buttoncount" %"%Icons%+1"
ShowDarkHint("Панель иконок:" & auCRLF & i-1 & " кнопок создано.", 0)
CommandExec("em_open_icons_panel")
EndFunc
Func ShowDarkHint(DarkHint, HintSleep = 1000)
# формат подсказки
SetHintParam("ShowHint", "Font", 10, "Arial")
SetHintParam("ShowHint", "BackColor", 0x001C1C1C)
SetHintParam("ShowHint", "Text", 0xFFFFFF)
ShowHint(DarkHint)
If HintSleep > 0 Then
Sleep(HintSleep)
WinSetState(23)
Else
Sleep(100)
Endif
SetHintParam("ShowHint", "Reload")
EndFunc
# создание новой панели (путь, имя, кнопка возврата)
Func CreateNewBar(BarPath, BarName, BackButton = true)
Local bar, br2, def
bar = BarPath & BarName & ".bar"
br2 = BarPath & BarName & ".br2"
ShellExec /SW_HIDE /WAIT:2000 %COMSPEC% "/c del /f /q ""%bar%"""
ShellExec /SW_HIDE /WAIT:2000 %COMSPEC% "/c del /f /q ""%br2%"""
If FileExist(bar) Then
ShowDarkHint("Ошибка удаления " & bar, 0)
Return false
Endif
IniWrite %bar% "Buttonbar" "Buttoncount" "0"
If ERROR = 1 Then
ShowDarkHint("Ошибка создания " & bar, 0)
Return false
EndIf
IniRead def %COMMANDER_INI% "Buttonbar" "Buttonbar" "%COMMANDER_PATH%\DEFAULT.BAR"
If BackButton Then
IniWrite %bar% "Buttonbar" "Button1" "wcmicons.dll,15"
IniWrite %bar% "Buttonbar" "Cmd1" %def%
IniWrite %bar% "Buttonbar" "Menu1" "Вернуться"
Endif
Return true
EndFunc
|
 usercmd.ini Code: | [em_open_icons_panel]
cmd=OPENBAR1
param=%|COMMANDER_PATH|\Bars\Auto_icons.bar |
 Кнопка Code: | TOTALCMD#BAR#DATA
62005
Wcmicons.dll
Загрузить иконки на панель
-1 |
Загрузил себе на панель все 1259 иконок из библиотеки VIM вашей коллекции - Тотал чуть не загнулся. Т.ч. не только он может подкидывать нам сюрпризы, но и мы ему  |
|
Back to top |
|
 |
|
|
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
|