'••••••••••••••••••••••••• VBS •••••••••••••••••••••••••
' Синхронное открытие одноимённых каталогов в панелях ТС
' Условие: требуется TCScript.dll
' Ключ запрета несинхронного открытия: /n
' Ключ перехода в родительский каталог: /b
'•••••••••••••••••••••••••••••••••• Автор: Flasher © •••
Option Explicit : Dim FSO, TCS, Key, SP, TP, N, i, T, 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
If FSO.FileExists("\\?\" & Left(SP, Len(SP) - 1)) Then
T = TP : If .GetInfo("A") = "R" Then TP = SP : SP = T
.SetLeftPath SP & ":" : .SetRightPath TP & ":"
ElseIf Right(SP, 1) = "\" Then Call Cm(2002)(4006)(2002)(4006) End If
ElseIf Not Key.Exists("n") Then Cm(2002) End If
Else : Dim REx : Set REx = New RegExp : REx.Pattern = "^\\{3}[^\\]+\\"
If FSO.FolderExists("\\?\" & REx.Replace(SP, "") & N) Then
If FSO.FolderExists("\\?\" & REx.Replace(TP, "") & N) Then _
Cm(2003) : .SetTrgPath TP & N & "\" :_
Else If Not Key.Exists("n") Then Cm(2003)
ElseIf FSO.FileExists("\\?\" & SP & N) Then
If FSO.FileExists("\\?\" & TP & N) Then .SetTrgPath TP & N & "\" :_
.Sleep 40 : Ln = Len(.GetInfo("TP")) - Len(TP)
Select Case True
Case Ln > 0 Cm(2003)
Case Ln < 0 Call Cm(4006)(570)(4006)
Case Ln = "0" Or Not Key.Exists("n") Cm(1001)
End Select
End If
End If : .LockTC False
End With : Set FSO = Nothing : Set TCS = Nothing
Function Cm(y) TCS.SendCommand y, 1: Set Cm = GetRef("Cm") End Function
Function FN(x) FN = FSO.GetFileName(Replace(x, "\\\", "")) End Function |