'================================== VBS ==================================
' Перейти к исходному объекту символической ссылки или ярлыка под курсором
' Параметры: %V [/R] [/T] | /R — ключ для открытия в другой панели
' | /T — ключ для открытия в новой вкладке
'==================================================== Автор: Flasher © ===
Option Explicit : Dim A, T, FSO, ShA, WSS, LT, PN, i, N, L
Set A = WSH.Arguments
If Right(A(0), 1) = "\" Then WSH.Quit
If A.Named.Exists("T") Then T = "/T "
If A.Named.Exists("R") Then T = T & "/R="
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ShA = CreateObject("Shell.Application")
Set WSS = CreateObject("WScript.Shell")
If Left(A(0), 2) <> "\\" Then
Set LT = ShA.NameSpace(0).ParseName(A(0))
Else PN = FSO.GetParentFolderName(Mid(A(0), 3))
For Each i in Array(0,5,46,47,53,54,55,"Profile","Public","Downloads","Programs",_
"Links","My Video","My Pictures","My Music","Contacts","User Pinned","SavedGames",_
"CommonDownloads","MusicLibrary","VideosLibrary","DocumentsLibrary","PicturesLibrary",_
"::{7BE9D83C-A729-4D97-B5A7-1B7313C39E0A}","::{865E5E76-AD83-4DCA-A109-50DC2113CE9A}",_
"::{D34A6CA6-62C2-4C34-8A7C-14709C1AD938}","::{323CA680-C24D-4099-B94D-446DD2D7249E}",_
"::{ED50FC29-B964-48A9-AFB3-15EBB9B97F36}","::{B155BDF8-02F0-451E-9A26-AE317CFD7779}")
If Not IsNumeric(i) Then i = "shell:" & i
Set N = ShA.NameSpace(i) : If Not N Is Nothing Then _
If PN = N Then Set LT = N.ParseName(FSO.GetFileName(Mid(A(0), 3))) : Exit For
Next
If Not IsObject(LT) Then Quit
End If
On Error Resume Next
If LT.IsLink And LCase(Right(A(0), 4)) = ".lnk" Then
L = LT.GetLink.Target.Path
If Err Then L = LT.ExtendedProperty("LinkTarget")
If Left(L, 3) = "::{" Then
Err.Clear : If ShA.NameSpace("shell:" & L) Is Nothing Then Quit
If Err.Number Then Quit
Else
If Mid(L, 2, 2) <> ":\" Then Call Quit Else If Not Err Then _
If FSO.GetFileName(L) = "mmc.exe" Then A = LT.GetLink.Arguments:_
If Len(A) Then L = A End If : L = WSS.ExpandEnvironmentStrings(L)
If FSO.FileExists(L) + FSO.FolderExists(L) = 0 Then Quit
End If
Else L = LT.ExtendedProperty("LinkTarget") End If
If Not IsEmpty(L) Then WSS.Exec "%COMMANDER_EXE% /A /O /S " & T & """" & L & """"
Quit: Sub Quit: Set ShA = Nothing : Set FSO = Nothing : Set WSS = Nothing : WSH.Quit :End Sub |