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 

Задачки на внутренние ассоциации
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
aLLigator



Joined: 01 Dec 2011
Posts: 166
Location: из тех ворот, что и весь народ...

Post (Separately) Posted: Tue Jun 27, 2023 14:45    Post subject: Reply with quote

Вроде получилось решить свою хотелку через скрипт, но поскольку я в них не сильно - имеются некоторые "излишества"
Code:

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. Запуск скрипта, если что, у меня настроен через внутренние ассоциации
Code:

Filter38=*.avi
Filter38_open=%APPDATA%\GHISLER\MPC.vbs "%1"
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Jun 30, 2023 16:22    Post subject: Reply with quote

Хотя оно вроде и так работает, но варианты с "H:" в Select смотрятся странно, можно просто опустить регистр, и повтор тоже, т.е. что-то типа
Code:
        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.)
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 178

Post (Separately) Posted: Tue Jan 30, 2024 19:39    Post subject: Reply with quote

Во внутренних ассоциациях есть возможность указать в действиях команду типа **ext, которая будет вызывать архивный плагин, связанный с расширением ext. Я часто это использую для входа в инсталляторы, например, **TotalObserver, **MultiArc и т.д., т.е. когда нужен именно такой вход конкретным плагином. А можно ли назначить такой функционал на кнопку или горячую клавишу? Question
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10264
Location: Россия, Саратов

Post (Separately) Posted: Sun Feb 04, 2024 08:41    Post subject: Reply with quote

Orion9
Какой именно "такой функционал" запрашивается? Переключалка действий для одного и того же расширения или что-то другое? Кстати, имейте в виду, что внутренние ассоциации работают в TC только строго определённым образом: с кнопки, например, запустить их невозможно (см. справочник). А вот сделать несколько таких ассоциаций для одного расширения и выбирать нужное действие через меню возможно вполне.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
imig73



Joined: 18 Jun 2013
Posts: 280
Location: г. Иркутск

Post (Separately) Posted: Sun Feb 04, 2024 10:35    Post subject: Reply with quote

Orion9
Что то мудрёно ты спросил. Просто добавь кнопку с внутренней командой 'войти в текущий каталог/архив'. Тогда тотал зайдёт в любой поддерживаемый плагинами архив или инсталлятор exe под курсором как в каталог без нажатия Ctrl+PgDn, или просто войдёт в каталог под курсором. Или что ещё я не понял.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 178

Post (Separately) Posted: Mon Feb 05, 2024 00:39    Post subject: Reply with quote

imig73
Согласен - фигово я написал Smile Хотя имел в виду именно:

Quote:
Переключалка действий для одного и того же расширения или что-то другое? Кстати, имейте в виду, что внутренние ассоциации работают в TC только строго определённым образом: с кнопки, например, запустить их невозможно (см. справочник). А вот сделать несколько таких ассоциаций для одного расширения и выбирать нужное действие через меню возможно вполне.

Вот это как раз и не понятно. Если есть возможность входа в архив/exe конкретным плагином, выбрав его в контекстном меню ассоциаций, то почему нельзя сделать то же самое из кнопки бара или вообще откуда угодно? В чем тут препятствие для разработчика?
Да и вообще, гораздо интереснее было бы подсвечивать/сообщать, каким плагином был осуществлен вход. Например, под вкладками в строке путей рядом с избранными каталогами/историей поиска - сразу стало бы нагдяднее. Впрочем, это уже вряд ли будет реализовано Smile

А пока приходится через контекстное меню = что не удобно, но все же пригодно. Например, сделал опцию входа в инсталляторы InnoSetup, скопировав каталог MultiArc и установив полученную копию с единственной секцией в MultiArc.ini, чтобы можно было входить в некоторые специфичные установщики посредством InnoExtract:
Code:
[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]
Code:
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.
По поводу скрипта выше. Должно же все в батнике работать:
Code:

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)
Back to top
View user's profile Send private message
Lnk



Joined: 13 May 2023
Posts: 67

Post (Separately) Posted: Tue Feb 06, 2024 13:35    Post subject: Reply with quote

Orion9 ,
есть такой экстрактор https://github.com/Bioruebe/UniExtract2 .Не знаю будет интересен ли для ваших целей, но он способен сканировать экзешник, по результатам видно чем запаковано. Сам определяет чем распаковать, я лично простую кнопку создал, перетащив UniExtract.exe на панель и прописав %P%N .
Умеет не только инно, тут полный список https://github.com/Bioruebe/UniExtract2/blob/master/docs/FORMATS.md
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 178

Post (Separately) Posted: Wed Feb 07, 2024 01:09    Post subject: Reply with quote

Lnk
Прога норм, не спорю, но все-таки она не может заменить быструю и удобную навигацию TC по CTRL+PgDown. Думаю, она больше подходит в качестве последнего аргумента, когда стандартные средства/плагины не дали нужного результата. При этом есть и другие недостатки:

- большой размер
- дублирующие функции
- медленная скорость работы
- необходимость полной распаковки
- нет обновлений
- не все распаковывает

Например:
https://lrepacks.net/repaki-multimedia-programm/452-goldwave-repack-amp-portable.html

В то время, как мой пример выше (с innoextract 1.9) с этим установщиком справляется.
Back to top
View user's profile Send private message
Lnk



Joined: 13 May 2023
Posts: 67

Post (Separately) Posted: Wed Feb 07, 2024 04:45    Post subject: Reply with quote

Orion9
Ну я исхожу обычно из того что одно другому не мешает.
Отмечу на всякий - большой размер - это просто 2 версия, добавлено много расширений, есть вариант попроще https://www.legroom.net/software/uniextract , весит 5 мб. Он работает несколько иначе (у него к слову были и неофициальные обновления, но я особо этой темой не интересуюсь просто).
И любую или обе можно, по идее, тоже в тотал прикрутить отдельно, в дополнении к уже имеющимся, я потому написал.
\
Кстати обратите внимание на helper_binaries_info.txt. Можно самому обновлять что-то по идее, например innounp.exe лежит в проге 0.49, но можно прикрутить версию повыше(не берусь сказать конечно, насколько она разная по сравнению с innoextract 1.9).
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 178

Post (Separately) Posted: Wed Feb 07, 2024 12:22    Post subject: Reply with quote

Quote:
не берусь сказать конечно, насколько она разная по сравнению с innoextract 1.9

Я тоже. В справке написано, что кроме стандартных innosetup-установщиков, innoextract может принимать модифицированные варианты:

Code:
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 - я тоже не в курсе. Но главное работает Smile
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10264
Location: Россия, Саратов

Post (Separately) Posted: Wed Feb 07, 2024 13:56    Post subject: Reply with quote

Orion9
Lnk
Настоятельно рекомендую как модератор продолжить общение (если оно предполагается) в режиме личных сообщений — у данной темы назначение другое, и оффтопа здесь стало уже многовато.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 178

Post (Separately) Posted: Thu Feb 08, 2024 00:26    Post subject: Reply with quote

Может, кому пригодится... Проблема здесь. Новое решение:

autorun.cfg
Code:
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


Code:
---
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""
---


Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utilites\TCFS2\TCFS2.exe
/ef "msg(regmsg(SpekMessage), 0, 0)"
%SPEK_ICON%
Acoustic spectrum On/Off


-1

Вот теперь я доволен Smile
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Page 10 of 10

 
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