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 

Single Post  Topic: Утилита для работы с плагинами WDX из командной строки 
Author Message
Orion9



PostPosted: Sat Mar 23, 2024 20:42    Post subject: Reply with quote

Loopback wrote:
Добавить-то наверно можно, но не слишком ли много опций для одного режима вывода? Smile Опять же, есть поля, а есть еще единицы...

Да норм будет. Юниты, конечно, не нужны, а вот поля некоторые неплохо было бы исключить при выводе. По сути, на выходе получится компакный блок, который можно будет объединять с другими компактными блоками и пускать сразу в хинт. Например, взять все непустое и нужное из Ntlinks, Ntfsfilestreams, Filex и т.п. и сразу выводить альтернативную подсказку к файлу. Да и обрабатывать компакный блок будет легче в других скриптах и батниках.

А теперь некое удобство от благодарного пользователя! Smile

Скрипт на Autorun, который создает три bar-файла для быстрого тестирования всех имеющихся плугов в утилите uwdx. Поменяйте пути при необходимости. Также нужна утилита TCFS2, которая посылает сообщение окну ТС и запускает сам скрипт. Cкрипт перебирает секцию контентных плагинов и формирует соответствующие файлы панелей, которые впоследствии можно перетащить на главную панель инструментов и использовать в качестве выпадающих меню. Также можно настроить показ самих меню через ControlSetMouseAction и пользовательские команды в usercmd.ini (по-умолчанию Ctrl+ПКМ и Shift+Ctrl+ПКМ). Скрипт удаляет файлы uwdx*.bar в папке %COMMANDER_PATH%\Bars\, так что будьте осторожны и проверьте все еще раз.

Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utilites\TCFS2\TCFS2.exe
/ef "msg(regmsg(UwdxMessage), 0, 0)"
%COMMANDER_PATH%\Plugins\uwdx\uwdx.exe
Создать панели uwdx


-1

autorun.cfg
Code:
ControlSetMouseAction /R /K:C 3 ShowUwdxe
ControlSetMouseAction /R /K:C /K:S 3 ShowUwdxa

SetMessageAction "UwdxMessage" CreateUwdxBars

Func ShowUwdxe
   CommandExec em_uwdxe
EndFunc

Func ShowUwdxa
   CommandExec em_uwdxa
EndFunc

Func CreateUwdxBars
Local f = 0
   f = f + CreateUwdxBar("uwdxa")
   f = f + CreateUwdxBar("uwdxe")
   f = f + CreateUwdxBar("uwdxp")   
   MsgBox(f & " из 3 файлов было создано", "uwdx")
EndFunc

Func CreateUwdxBar(barname)
Local i, barfile, br2file
#Local uwdx = %COMMANDER_PATH% & "\Plugins\uwdx\uwdx.exe"
barfile = %COMMANDER_PATH% & "\Bars\" & barname & ".bar"
br2file = %COMMANDER_PATH% & "\Bars\" & barname & ".br2"
 
   ShellExec /SW_HIDE /WAIT:2000 %COMSPEC% "/c del /f /q ""%barfile%"""
   ShellExec /SW_HIDE /WAIT:2000 %COMSPEC% "/c del /f /q ""%br2file%"""
   If FileExist(barfile) Then   
      MsgBox("Ошибка удаления " & barfile, "uwdx")
      Return 0
   Endif
   IniWrite %barfile% "Buttonbar" "Buttoncount"  "0"
   If ERROR = 1 Then
      MsgBox("Ошибка создания " & barfile, "uwdx")
      Return 0   
   EndIf
   Set /EV-      cmd "%COMSPEC% /k"
   Set /EV-     uwdx "%COMMANDER_PATH%\Plugins\uwdx\uwdx.exe"
   Set /EV-    uwdxp "%%COMMANDER_PATH%%\Plugins\uwdx\uwdx.exe"
   Set /EV- testfile "%P%N"
 
   i=0
   While i<55
      IniRead /R wdx %COMMANDER_INI% "ContentPlugins" %"%i%" "stop"
      If wdx="stop" Then Break
     
      wdx = StrTrim(StrRight(wdx, StrLen(wdx)-StrPos(wdx, "\", -1)))
     
      IniWrite %barfile% "Buttonbar" %"'Button' & %i%+1" "%uwdx%"
      IniWrite %barfile% "Buttonbar" %"'Cmd' & %i%+1"     %cmd%
      IniWrite %barfile% "Buttonbar" %"'Menu' & %i%+1"   "%wdx%" 
         
      If barname="uwdxa" Then
         IniWrite %barfile% "Buttonbar" %"'Param' & %i%+1"  '"""%uwdxp%""" /I %wdx% ""%testfile%""'
      ElseIf barname="uwdxe" Then
         IniWrite %barfile% "Buttonbar" %"'Param' & %i%+1"  '"""%uwdxp%""" /E /I %wdx% ""%testfile%""'
      Else
         IniWrite %barfile% "Buttonbar" %"'Param' & %i%+1"  '"""%uwdxp%""" /I "%wdx%"'
      Endif
      i = i + 1
   Wend
   IniWrite %barfile% "Buttonbar" "Buttoncount"  %i%
   Return 1
EndFunc


usercmd.ini
Code:
[em_uwdxe]
button=
cmd=OPENBARMENU %COMMANDER_PATH%\Bars\uwdxe.bar
iconic=1
[em_uwdxa]
button=
cmd=OPENBARMENU %COMMANDER_PATH%\Bars\uwdxa.bar
iconic=1

P.S. Писать скрипты на Autorun - одно удовольствие Smile
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group