Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Ultra TC Editors 
Author Message
Flasher



PostPosted: Thu Nov 25, 2010 11:48    Post subject: Reply with quote

Avada wrote:
2. По сохранению открытых каталогов (особенно в архивах и виртуальных папках) проблема признана весьма сложной, быстрого решения (если оно вообще возможно) в ближайшее время не предвидится.
Понятно. Тогда, надеюсь, не составит труда показать ему такой скрипт:
Code:
' Reload TC with return to different directories types
' and open archives
' Requirements: Script Helper ActiveX for TC by Volniy
' Parameters: "%X%P%Z" "%T"
' Flasher (c)
'=================================
LP = WScript.Arguments(0)
RP = WScript.Arguments(1)

With CreateObject("TCScript.Helper")
  .SendCommand "cm_ConfigSaveDirHistory"
  L = Replace(.INIRead(.MainINI,"LeftHistory","0",""),"/","\")
  R = Replace(.INIRead(.MainINI,"RightHistory","0",""),"/","\")
  .SendCommand "cm_Exit", True
End With

LM = Left(L, Len(L)-(Len(LP)-1))
RM = Left(R, Len(R)-(Len(RP)-1))

Dim ListL, ListR, NameArr, N, Param, TCexe
Set ListL = CreateObject("Scripting.Dictionary")
Set ListR = CreateObject("Scripting.Dictionary")
NameArr   = Array(&Ha, &H3, &H4, &H11, &H12)

With CreateObject("Shell.Application")
  For Each N In NameArr
    ListL.Add .NameSpace(N).Self.Path & "|" & LP , ""
    ListR.Add .NameSpace(N).Self.Path & "|" & RP , ""
  Next
End With

If L="::|"&LP And ListR.Exists(R) Then
  Param = "/L=""" & L  & """ /R=""" & RM & """"
ElseIf ListL.Exists(L) And R="::|"&RP Then
  Param = "/L=""" & LM & """ /R=""" & R  & """"
ElseIf ListL.Exists(L) And ListR.Exists(R) Then
  Param = "/L=""" & LM & """ /R=""" & RM & """"
ElseIf ListL.Exists(L) Then
  Param = "/R=""" & R  & """ /L=""" & LM & """"
ElseIf ListR.Exists(R) Then
  Param = "/L=""" & L  & """ /R=""" & RM & """"
Else
  Param = "/L=""" & L  & """ /R=""" & R  & """"
End If

TCexe = "%Commander_Path%\totalcmd.exe"
With CreateObject("WScript.Shell")
  .Run """" & .ExpandEnvironmentStrings(TCexe) & """ " & Param, 0
End With

WScript.Quit
Тут происходит возврат в корень архива, в системные плагины, в виртуальные папки: Мой компьютер, Панель управления, Сетевое окружение, Принтеры, Корзина.
С Рабочим столом никак не получается. Т.е. я не могу к нему даже осуществить доступ с комстроки. Через CLSID
( cd ::{00021400-0000-0000-C000-000000000046} ) не работает.


Last edited by Flasher on Fri Nov 26, 2010 13:38; edited 3 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group