Страница 5 из 9
Добавлено: Вт дек 26, 2017 17:23
Flasher
ingerard
Проблема в том, что я не могу идентифицировать нахождение внутри архива кроме как перебором путевой цепочки с проверкой типа. Это может несколько замедлить скорость. Могу добавить, если есть желание протестировать. А пока сделал поддержку файлсистемных плагинов с файловой структурой (BadCopy, Back2life, DiskInternals Reader, NTFS - streams). Выход из глубины архивов также должен работать.
Добавлено: Вт дек 26, 2017 17:26
ingerard
Flasher
Не, думаю не стоит, замедление очень критично, и так полсекундный отклик уже присутствует.
А пока сделал поддержку файлсистемных плагинов с файловой структурой (BadCopy, Back2life, DiskInternals Reader, NTFS - streams). Выход из глубины архивов также должен работать.
Испробую, а это дополнение на скорость не влияет?
Добавлено: Вт дек 26, 2017 17:33
Flasher
ingerard
Полсекунды?

Это много. У меня 0.12-0.14 сек в среднем.
ingerard писал(а):Испробую, а это дополнение на скорость не влияет?
Любая проверка влияет. Но несущественно.
Добавил ещё открытие файлов (Как мы вообще это упустили?

) и, соответственно, несихронный вход в архив.
Добавлено: Вт дек 26, 2017 20:38
ingerard
Flasher писал(а):Полсекунды? Shocked Это много.
Может конечно и меньше

Точных замеров не делал.
Flasher писал(а):Добавил ещё открытие файлов (Как мы вообще это упустили? Shocked)
Я думал это фича такая

Типа с каталогами только работает та и ладно. Но думаю пригодится открытие. Ща буду тестить.
Что-то поломалось, с левой панели нажимаю на папку, справа заходит, а слева нет, нажимаю еще раз, заходит и в эту. С правой панели нормально.
Добавлено: Вт дек 26, 2017 21:22
Flasher
ingerard писал(а):Может конечно и меньше
Да скорее всего.
ingerard писал(а):Я думал это фича такая
А как работать-то? После синхронизации наверняка что-то запускать понадобится для сравнения.
Что-то какая-то странная история с левой/правой панелью. Добавил задержку после входа в противоположной. Как с ней?
Добавлено: Вт дек 26, 2017 21:36
ingerard
Flasher писал(а):Добавил задержку после входа в противоположной. Как с ней?
[s]Теперь нормально.[/s] Как-то сложно код оброс

Нет, не нормально, бывает проскакивает глюк.
Добавлено: Вт дек 26, 2017 21:46
Flasher
ingerard
В 26 строке можно наращивать 20: 25, 30, 40, ...
Принципильно в этой части он и не изменился. По логике и ранее должна была возникать такая ситуация.
Добавлено: Вт дек 26, 2017 22:00
ingerard
Flasher
Поставил 40, пока вроде достаточно, завтра усерднее протестирую.
Добавлено: Чт дек 28, 2017 00:52
Flasher
ingerard
Ещё немного калибровки. Сделал вход в корни распаковываемых файлов
и установку курсора в другой панели на одноимённик при запуске файла.
Добавлено: Чт дек 28, 2017 10:16
ingerard
Flasher
Испробовал, норм.
p.s. Тут обнаружил альтернативу - FreeCommander, в ней реализован синхронный просмотр на отлично, там даже курсор двигается по одинаковым элементам. Почему Гислер сделал такой обрубок не понятно. Я пытался ему донести мысль, а от него никакой реакции.
Добавлено: Чт дек 28, 2017 11:10
Flasher
ingerard
Давно не щупал FreeCommander. Может, он и не единственный, который так умеет. Ссылка на донесённую мысль не помешала бы.
Добавлено: Чт дек 28, 2017 12:44
ingerard
Добавлено: Чт дек 28, 2017 14:57
Flasher
ingerard
Да вроде нормально. Гифки есть — уже хорошо.
Добавлено: Чт янв 04, 2018 22:34
Flasher
ingerard
Более костыльный вариант (+ 1 дс), но беспроблемный для архивов:
Код: Выделить всё
'••••••••••••••••••••••••••••• VBS •••••••••••••••••••••••••••••
' Синхронное открытие одноимённых каталогов/архивов в панелях ТС
' Условие: требуется TCScript.dll
' Ключ запрета несинхронного открытия: /n
' Ключ перехода в родительский каталог: /b
'•••••••••••••••••••••••••••••••••••••••••• Автор: Flasher © •••
Option Explicit : Dim FSO, TCS, Key, SP, TP, N, Ln
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TCS = CreateObject("TCScript.Helper")
Set Key = WSH.Arguments.Named
With TCS .Pause = 0 : .Wait = True : SP = .GetSrcPath
TP = .GetInfo("TP") : N = .GetInfo("SN") : .LockTC True
If N = ".." Or Key.Exists("b") Then
If StrComp(FN(SP), FN(TP), 1) = 0 Then _
Call Cm(2002)(4006)(2002)(4006) Else If Not Key.Exists("n") Then Cm(2002)
Else Cm(2003)
If Len(.GetSrcPath) - Len(SP) > 0 Then
If .INIRead(.TCPath & "\usercmd.ini", "em_cd", "param") <> "%Z%A" Then _
.INIWriteSection .TCPath & "\usercmd.ini", "em_cd", "cmd=cd" & vbCrLf & "param=%Z%A"
Cm(4006) : .UserCmd "em_cd " & FN(N) : Ln = Len(.GetSrcPath) - Len(TP)
Select Case True
Case Ln > 0 Cm(4006)
Case Ln < 0 Call Cm(570)(4006)(570)
Case Ln = 0 Cm(4006) : If Key.Exists("n") Then Cm(570)
End Select
Else Cm(1001) End If
End If : .LockTC False
End With : Set FSO = Nothing : Set TCS = Nothing
Function FN(x) FN = FSO.GetFileName(Replace(x, "\\\", "")) End Function
Function Cm(y) TCS.SendCommand y,1 : Set Cm = GetRef("Cm") End Function
В
нижней рекомендации send({ESC}) заменил на
tcm(4005).
Добавлено: Пн июн 04, 2018 09:09
JKT
Условие: требуется TCScript.dll
Т.е. его достаточно кинуть в системные папки и зарегить в с-ме, или еще какие телодвижения надо производить?