Flasher
|
Posted: Thu Jan 04, 2018 23:34 Post subject: |
|
|
ingerard
Более костыльный вариант (+ 1 дс), но беспроблемный для архивов:
Code: | '••••••••••••••••••••••••••••• 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). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|