Страница 10 из 10
Добавлено: Вт июн 27, 2023 13:45
aLLigator
Вроде получилось решить свою хотелку через скрипт, но поскольку я в них не сильно - имеются некоторые "излишества"
Код: Выделить всё
Sub OpenWith
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(fileToOpen) Then
driveName = .GetDriveName(fileToOpen)
Select Case driveName
Case "H:"
runStr = """C:\Program Files\MPC-HC\mpc-hc64.exe""" & " """ & fileToOpen & """"
WScript.CreateObject("WScript.Shell").Run runStr, 1, False
Case "h:"
runStr = """C:\Program Files\MPC-HC\mpc-hc64.exe""" & " """ & fileToOpen & """"
WScript.CreateObject("WScript.Shell").Run runStr, 1, False
Case Else
runStr = "mpc-be64.exe" & " """ & fileToOpen & """"
WScript.CreateObject("WScript.Shell").Run runStr, 1, False
End Select
Else
WScript.Echo "Can't find [" & fileToOpen & "]."
WScript.Quit 2
End If
End With
End Sub
If WScript.Arguments.Count = 1 Then
fileToOpen = WScript.Arguments.Item(0)
call OpenWith()
Else
WScript.Echo "Usage:" & vbNewLine & WScript.ScriptName & " <fileName>"
WScript.Quit 1
End If
WScript.Quit 0
Оказалось что под разными версиями ОС букву диска воспринимает либо с большой (win11) либо с маленькой (win10).
Так же почему-то MPC-BE работает без указания полного пути, а вот MPC-HC только с полным да еще и с определенным количеством кавычек.
Буду благодарен если кто грамотный посмотрит и поправит скрипт, что бы стало совсем "комильфо".
P.S. Запуск скрипта, если что, у меня настроен через внутренние ассоциации
Код: Выделить всё
Filter38=*.avi
Filter38_open=%APPDATA%\GHISLER\MPC.vbs "%1"
Добавлено: Пт июн 30, 2023 15:22
Skif_off
Хотя оно вроде и так работает, но варианты с "H:" в Select смотрятся странно, можно просто опустить регистр, и повтор тоже, т.е. что-то типа
Код: Выделить всё
driveName = .GetDriveName(fileToOpen)
If LCase(driveName) = "h:" Then
runStr = """C:\Program Files\MPC-HC\mpc-hc64.exe""" & " """ & fileToOpen & """"
Else
runStr = "mpc-be64.exe" & " """ & fileToOpen & """"
End If
WScript.CreateObject("WScript.Shell").Run runStr, 1, False
(Я бы использовал полный путь и с MPC-BE.)
Добавлено: Вт янв 30, 2024 18:39
Orion9
Во внутренних ассоциациях есть возможность указать в действиях команду типа **ext, которая будет вызывать архивный плагин, связанный с расширением ext. Я часто это использую для входа в инсталляторы, например, **TotalObserver, **MultiArc и т.д., т.е. когда нужен именно такой вход конкретным плагином. А можно ли назначить такой функционал на кнопку или горячую клавишу?

Добавлено: Вс фев 04, 2024 07:41
Avada
Orion9
Какой именно "такой функционал" запрашивается? Переключалка действий для одного и того же расширения или что-то другое? Кстати, имейте в виду, что внутренние ассоциации работают в TC только строго определённым образом: с кнопки, например, запустить их невозможно (см.
справочник). А вот сделать несколько таких ассоциаций для одного расширения и выбирать нужное действие через меню возможно вполне.
Добавлено: Вс фев 04, 2024 09:35
imig73
Orion9
Что то мудрёно ты спросил. Просто добавь кнопку с внутренней командой 'войти в текущий каталог/архив'. Тогда тотал зайдёт в любой поддерживаемый плагинами архив или инсталлятор exe под курсором как в каталог без нажатия Ctrl+PgDn, или просто войдёт в каталог под курсором. Или что ещё я не понял.
Добавлено: Вс фев 04, 2024 23:39
Orion9
imig73
Согласен - фигово я написал

Хотя имел в виду именно:
Переключалка действий для одного и того же расширения или что-то другое? Кстати, имейте в виду, что внутренние ассоциации работают в TC только строго определённым образом: с кнопки, например, запустить их невозможно (см. справочник). А вот сделать несколько таких ассоциаций для одного расширения и выбирать нужное действие через меню возможно вполне.
Вот это как раз и не понятно. Если есть возможность входа в архив/exe конкретным плагином, выбрав его в контекстном меню ассоциаций, то почему нельзя сделать то же самое из кнопки бара или вообще откуда угодно? В чем тут препятствие для разработчика?
Да и вообще, гораздо интереснее было бы подсвечивать/сообщать, каким плагином был осуществлен вход. Например, под вкладками в строке путей рядом с избранными каталогами/историей поиска - сразу стало бы нагдяднее. Впрочем, это уже вряд ли будет реализовано
А пока приходится через контекстное меню = что
не удобно, но все же пригодно. Например, сделал опцию входа в инсталляторы InnoSetup, скопировав каталог MultiArc и установив полученную копию с единственной секцией в MultiArc.ini, чтобы можно было входить в некоторые специфичные установщики посредством InnoExtract:
Код: Выделить всё
[InnoExtract]
Archiver=%COMMANDER_PATH%\Plugins\arc\InnoSetup\innoextract.exe
Description=innoextract 1.9
Extension=exe
ID=49 6E 6E 6F
IDPos=<SeekID>
Format0=z+ n+
List="%PQA --list-sizes -s %AQ %O"
ExtractWithPath="%PQA -e -q %AQA -I %FQA"
Debug=0
BatchUnpack=1
моя секция [Associations]
Код: Выделить всё
Filter18=*.exe
Filter18_innoextract 1.9=**MultiArc
Filter18_PE32 Resourses*=**wcres
Filter18_Открыть с MultiArc=**arc
Filter18_Открыть с Total7zip=**7z
Filter18_Открыть с Instal Explorer=**InstExpl
Filter18_Открыть с Total Observer=**TotalObserver
P.S.
По поводу скрипта выше. Должно же все в батнике работать:
Код: Выделить всё
if /i "%~d1" =="h:" (start "" "c:\Program Files (x86)\K-Lite Codec Pack\MPC-HC64\mpc-hc64.exe" %1) else (start "" "%COMMANDER_PATH%\Utilites\MPC-BE\mpc-be.exe" %1)
Добавлено: Вт фев 06, 2024 12:35
Lnk
Orion9 ,
есть такой экстрактор
https://github.com/Bioruebe/UniExtract2 .Не знаю будет интересен ли для ваших целей, но он способен сканировать экзешник, по результатам видно чем запаковано. Сам определяет чем распаковать, я лично простую кнопку создал, перетащив UniExtract.exe на панель и прописав %P%N .
Умеет не только инно, тут полный список
https://github.com/Bioruebe/UniExtract2 ... FORMATS.md
Добавлено: Ср фев 07, 2024 00:09
Orion9
Lnk
Прога норм, не спорю, но все-таки она не может заменить быструю и удобную навигацию TC по CTRL+PgDown. Думаю, она больше подходит в качестве последнего аргумента, когда стандартные средства/плагины не дали нужного результата. При этом есть и другие недостатки:
- большой размер
- дублирующие функции
- медленная скорость работы
- необходимость полной распаковки
- нет обновлений
- не все распаковывает
Например:
https://lrepacks.net/repaki-multimedia- ... table.html
В то время, как мой пример выше (с innoextract 1.9) с этим установщиком справляется.
Добавлено: Ср фев 07, 2024 03:45
Lnk
Orion9
Ну я исхожу обычно из того что одно другому не мешает.
Отмечу на всякий -
большой размер - это просто 2 версия, добавлено много расширений, есть вариант попроще
https://www.legroom.net/software/uniextract , весит 5 мб. Он работает несколько иначе (у него к слову были и неофициальные обновления, но я особо этой темой не интересуюсь просто).
И любую или обе можно, по идее, тоже в тотал прикрутить отдельно, в дополнении к уже имеющимся, я потому написал.
\
Кстати обратите внимание на helper_binaries_info.txt. Можно самому обновлять что-то по идее, например innounp.exe лежит в проге 0.49, но можно прикрутить версию повыше(не берусь сказать конечно, насколько она разная по сравнению с innoextract 1.9).
Добавлено: Ср фев 07, 2024 11:22
Orion9
не берусь сказать конечно, насколько она разная по сравнению с innoextract 1.9
Я тоже. В справке написано, что кроме стандартных innosetup-установщиков, innoextract может принимать модифицированные варианты:
Код: Выделить всё
In addition to standard Inno Setup installers, innoextract also supports some modified Inno
Setup variants including Martijn Laan's My Inno Setup Extensions 3.0.6.1 as well as GOG.com's
Inno Setup-based game installers.
Почему innoextract открывает репаки с сайта lrepacks.net - я тоже не в курсе. Но главное работает

Добавлено: Ср фев 07, 2024 12:56
Avada
Orion9
Lnk
Настоятельно рекомендую как модератор продолжить общение (если оно предполагается) в режиме личных сообщений — у данной темы назначение другое, и оффтопа здесь стало уже многовато.
Добавлено: Ср фев 07, 2024 23:26
Orion9
Может, кому пригодится... Проблема
здесь. Новое решение:
autorun.cfg
Код: Выделить всё
SetEnv SPEK "%COMMANDER_PATH%\Utilites\Spek\Spek.exe"
SetEnv POT_PLAYER "%COMMANDER_PATH%\Utilites\PotPlayer\PotPlayerMini.exe"
SetEnv SPEK_ICON "%COMMANDER_PATH%\Icons\Spek\1.ico"
SetEnv VIDEO_PLAYER %POT_PLAYER%
Func SetPlayerEnv()
If %VIDEO_PLAYER% = %SPEK% Then
SetEnv VIDEO_PLAYER %POT_PLAYER%
SetEnv SPEK_ICON "%COMMANDER_PATH%\Icons\Spek\1.ico"
Else
SetEnv VIDEO_PLAYER %SPEK%
SetEnv SPEK_ICON "%COMMANDER_PATH%\Icons\Spek\2.ico"
EndIf
SendCommand 2945
EndFunc
SetMessageAction "SpekMessage" SetPlayerEnv
Код: Выделить всё
---
Filter78=*.mp3
Filter78.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,60
Filter78_open=""%VIDEO_PLAYER%" "%1""
Filter79=*.mp4
Filter79.icon=%COMMANDER_PATH%\Icons\PotPlayer.dll,25
Filter79_open=""%VIDEO_PLAYER%" "%1""
---
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utilites\TCFS2\TCFS2.exe
/ef "msg(regmsg(SpekMessage), 0, 0)"
%SPEK_ICON%
Acoustic spectrum On/Off
-1
Вот теперь я доволен
