Orion9

|
Posted: Sat Nov 30, 2024 20:51 Post subject: |
|
|
AkulaBig
Если бы меня попросили придумать лозунг Autorun, я не колебался бы ни секунды:
 Hidden text Сделаем Total Commander снова великим 
Идти нужно в ногу со временем. Возможно, раньше это и был простой "Автозапуск", о чем и говорит само имя плагина, но это было давно. Сейчас Autorun - это фактически полноценный, мощный скриптовый язык с интеграцией и ориентацией на ТС. Писать на нем скрипты - одно удовольствие. Ограничений практически никаких - лишь собственный полет фантазии. Я изменил немного скрипт и дополнил его, посмотрите какая красота получается:
 Hidden text Code: | Global MI_PARAMS = " --Language=file://ru.csv", MI_NUM = 1, MI_LOCK = 0
ControlSetMouseAction /L /K:C 3 SetMIParams
SetHotkeyAction /V:20 SetBigHintLock 1
SetHotkeyAction /K:S /V:20 SetBigHintLock 2
Func SetBigHintLock(lParam)
If MI_LOCK > 0 Then
MI_LOCK = 0
Else
MI_LOCK = 1
Endif
If lParam = 2 Then MI_LOCK = 2
EndFunc
Func SetMIParams()
MI_NUM = MI_NUM + 1
If MI_NUM > 4 Then MI_NUM = 1
Switch MI_NUM
Case 1
MI_PARAMS = " --Language=file://ru.csv"
Case 2
MI_PARAMS = " --Complete=1 --Language=file://ru.csv"
Case 3
MI_PARAMS = " --Complete=0"
Case 4
MI_PARAMS = " --Output=file://hint.txt"
EndSwitch
ShowHint("Параметры MediaInfo: " & MI_PARAMS)
EndFunc
Func BigHint(FileName, FieldIndex, UnitIndex)
Local b_SHIFT = IsPressed (0x10), b_CTRL = IsPressed (0x11), b_ALT = IsPressed (0x12), sParams
Static pipe, line = 0
sMI = %COMMANDER_PATH% & "\Plugins\arc\MediaInfo\MediaInfo.exe", _
pMI = %COMMANDER_PATH% & "\Plugins\arc\MediaInfo\"
sET = %COMMANDER_PATH% & "\Plugins\wlx\ExifToolView\exiftool.exe", _
pET = %COMMANDER_PATH% & "\Plugins\wlx\ExifToolView\"
If MI_LOCK = 0 And Not (b_CTRL Or b_SHIFT Or b_ALT) Then Return
If MI_LOCK > 0 Then b_CTRL = 1
If MI_LOCK > 1 Then b_SHIFT = 1
If FieldIndex = 1 Then
line = 0
If b_CTRL Then
If StrPos(FileGetAttr(FileName), "D") Then
pipe = "# Каталог"
Return pipe
Endif
If b_SHIFT Then
# pipe = GetPluginsData(FileName)
ProcessExecGetOutput pipe %sET% ' -G -S "%FileName%"' %pET%
Else
sParams = MI_PARAMS & ' "' & FileName & '"'
ProcessExecGetOutput /C:65001 pipe %sMI% %sParams% %pMI%
pipe = StrMid(pipe, 1, StrLen(pipe) - 4)
If IsPressed (0x5B) Then
If IsPressed (0x12) Then
pipe = GetPluginsData(FileName)
Else
line = 60
Endif
Endif
Endif
ElseIf b_ALT Then
pipe = GetPluginsData(FileName)
Endif
Endif
If MI_NUM = 4 Then
Return StrPart(pipe, auLF, FieldIndex + line)
Else
Return TrimSpaces(StrPart(pipe, auLF, FieldIndex + line))
Endif
EndFunc
Func TrimSpaces(String)
Local a, b
If Not StrPos(String, ":") Then Return String
a = StrPart(String, ":", 1)
b = StrPart(String, ":", 2) & StrPart(String, ":", 3)
Return StrTrim(a) & ": " & StrTrim(b)
EndFunc
Func GetPluginsData(FileName)
Local obj, streams, links, hint
obj = Plugin("NTFSFileStreams")
If ERROR = 0 Then
obj.FileName = FileName
streams = StrFormat("%.0f", obj.GetValue(1))
hint = "Потоков: " & streams
If streams > 0 Then
hint = hint & auCRLF & "Имена потоков: " & obj.GetValue(3)
hint = hint & auCRLF & "Размер потоков: " & SizeFormat(obj.GetValue(5), 1, "K", 2)
Endif
Free(obj)
Else
hint = "WDX Error " & ERROR
Endif
obj = Plugin("NTLinks")
If ERROR = 0 Then
obj.FileName = FileName
links = StrFormat("%.0f", obj.GetValue(0))
hint = hint & auCRLF & "Жестких ссылок: " & links
If links > 1 Then
hint = hint & auCRLF & StrReplace(obj.GetValue(7), ", ", auCRLF)
Endif
Free(obj)
Else
hint = hint & auCRLF & "WDX Error " & ERROR
Endif
Return hint
EndFunc
|
Теперь подсказку можно залочить по CapsLock или Shift+CapsLock, чтобы не держать постоянно Ctrl или Shift. Комбинация Ctrl+Click по активной панели меняет параметры MediaInfo. Файл hint.txt задает формат вывода для MI и должен быть в том же каталоге:
 Hidden text General;Name: %FileName%.%FileExtension%\r\nSize: %FileSize/String4%\r\n[Duration: %Duration%]\r\n[Duration: %Duration/String1%]\r\n[Duration: %Duration/String5%]\r\n[General: %BitRate/String%][(%BitRate_Mode%)][, %Format%][(%Format/Family%)]$if(%Cover%,\, Cover)[, %Width%x%Height%pix][, AR:%AspectRatio%=~%AspectRatio/String%][, %Channel(s)%ch][, %Resolution/String%][, %FrameRate/String%][, %SamplingRate/String%][, %Bits-(Pixel*Frame)%bpf][, %Language%]\r\n
Video;Video #%StreamKindID%: [%Width%x%Height%pix][, AR:%AspectRatio%=~%AspectRatio/String%][, %Resolution/String%][, %FrameRate/String%][, %BitRate/String%][(%BitRate_Mode%)][, %Bits-(Pixel*Frame)%bpf][, %Format%][(%Format/Family%)][, %Language%][, %Channel(s)%ch][, %SamplingRate/String%]\r\n
Audio;Audio #%StreamKindID%: [%Channel(s)%ch][, %Resolution/String%][, %SamplingRate/String%][, %BitRate/String%][(%BitRate_Mode%)][, %Format%][(%Format/Family%)][, %Format_Profile%][, %Language%][, %Width%x%Height%pix][, AR:%AspectRatio%=~%AspectRatio/String%][, %FrameRate/String%][, %Bits-(Pixel*Frame)%bpf]\r\n
;
Text;Text #%StreamKindID%: %Format%[(%Format/Family%)][@%Language%][, %StreamSize/String4%][, %BitRate/String%][(%BitRate_Mode%)][, %Width%x%Height%pix][, AR:%AspectRatio%=~%AspectRatio/String%][, %Channel(s)%ch][, %Resolution/String%][, %FrameRate/String%][, %SamplingRate/String%][, %Bits-(Pixel*Frame)%bpf]\r\n
Chapters;Chapters #%StreamKindID%: %Format%[(%Format/Family%)][@%Language%][, %Total% entries][, %StreamSize/String4%][, %BitRate/String%][(%BitRate_Mode%)][, %Width%x%Height%pix][, AR:%AspectRatio%=~%AspectRatio/String%][, %Channel(s)%ch][, %Resolution/String%][, %FrameRate/String%][, %SamplingRate/String%][, %Bits-(Pixel*Frame)%bpf]\r\n
;
Image;Image #%StreamKindID%: [%Width%x%Height%pix][, AR:%AspectRatio%=~%AspectRatio/String%][, %Resolution/String%][, %FrameRate/String%][, %StreamSize/String4%][, %BitRate/String%][(%BitRate_Mode%)][, %Bits-(Pixel*Frame)%bpf][, %Format%][(%Format/Family%)][, %Language%][, %Channel(s)%ch][, %SamplingRate/String%]\r\n
;
Menu;Menu #%StreamKindID%: [%MenuID/String%][, %Duration% Format:%Format/String%]
Ну еще к exiftool путь нужно указать.
 Hidden text Подсказка - шик просто ) |
|