Синхронная смена каталогов
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander

#1: Синхронная смена каталогов Author: ingerard PostPosted: Sat Dec 23, 2017 19:37
    —
Есть встроенная ТК команда "cm_SyncChangeDir", но она настолько немая и тугая что раздражает, она не показывает что включена или сбросилась, не показывает в какие каталоги лучше не заходить чтоб она не сбросилась. Вот это ее авто-отключение все портит, особенно когда имеешь дело с большим количеством каталогов.
Самый простой вариант решения этой проблемы - пока она включена, то в каталоги у которых нет похожих на другой панели заходить нельзя, то есть при нажатии "Enter" ничего не происходит. Или с этой функцией запускать еще "cm_CompareDirsWithSubdirs", которая хоть как-то будет отображать в какие папки не заходить. Но скорее все это реализовать сложно или невозможно, по-этому прошу скрипт, который открывает одновременно папку под курсором в активной панели и папку похожую по названию в другой панели, а если такой папки нет, то в скрипте будет две опции "ничего не делать" или "зайти в папку только в активной панели".

p.s. нашел в памяти ТК флаг состояния "cm_SyncChangeDir" по адресу "0075C4D8" размер 1 байт, можно ли его как-то использовать?

#2:  Author: FlasherLocation: Москва PostPosted: Sat Dec 23, 2017 21:07
    —
ingerard wrote:
она не показывает что включена или сбросилась
Почему же? Показывает. Что в тулбаре, что в главном меню.

#3:  Author: ingerard PostPosted: Sat Dec 23, 2017 22:00
    —
Flasher
Quote:
Почему же? Показывает. Что в тулбаре, что в главном меню.

Можно ли как-то считывать ее состояние?

И что насчет скрипта, сделать возможно?

#4:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Dec 24, 2017 00:32
    —
ingerard
Активность команды прекрасным образом отображается нажатым состоянием кнопки для неё на панели инструментов. Или обрамлением значка в меню. Если кнопка самопроизвольно стала отжатой, синхронизировать больше стало нечего. Вот и всё. Идею насчёт отображения "в какие папки не заходить" я, честно говоря, в изложенном виде не понял — ни со скриптом, ни без скрипта. Не говоря про то, что синхронно открываются папки не с похожими названиями, а с теми же самыми.

#5:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 13:03
    —
ingerard wrote:
Можно ли как-то считывать ее состояние?
Теоретически. Если бы был неких стиль окна, то — без проблем.
ingerard wrote:
И что насчет скрипта, сделать возможно?
Конечно. И опять же, не похожие, а одноимённые. Сделал пока по цепочке после буквы диска:
Code:
'============================== VBS ==============================
' Синхронное открытие каталогов в панелях ТС за вычетом букв диска
' Параметры: %V "%P" "%T"
' Ключ запрета несинхронного открытия: /n
'=================================================================
Set A = WSH.Arguments : V = A(0) : T = A(2)
With CreateObject("Scripting.FileSystemObject")
   If .FolderExists("\\?\" & V) And .FolderExists("\\?\" & T) Then
    If V <> A(1) Then Fd = T & .GetFileName(V) Else _
    V = .GetParentFolderName(V) : Fd = .GetParentFolderName(T)
    If .FolderExists("\\?\" & Fd) Then R = " /R=""" & Fd & """" _
    Else If A.Named.Exists("n") Then WSH.Quit
   End If
End With : If Mid(Fd, 2) = Mid(V, 2) Then _
CreateObject("WScript.Shell").Exec "%COMMANDER_EXE% /S /O /L=""" & V & """" & R

Можно сделать и как в ТС, но с учётом исходных недовольств TC-шный синхронный переход при клике на .. из размноимённых папок не смущает?

#6:  Author: ingerard PostPosted: Sun Dec 24, 2017 14:44
    —
Flasher
Убрал кусок "If Mid(Fd, 2) = Mid(V, 2) Then _", просто не нужно строгое сравнение.
Теперь бы сделать скрипт на возврат к родительской папке и так чтоб сохранялась позиция курсора. И тогда будет все отлично Smile

Quote:
синхронный переход при клике на .. из размноимённых папок не смущает?

Было бы неплохо это учитывать.


Last edited by ingerard on Sun Dec 24, 2017 14:53; edited 1 time in total

#7:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 14:48
    —
ingerard
Строгое сравнение чего? Не вижу ответа на вопрос.

Позиция курсора нужна для сохранения в каком контексте?

#8:  Author: ingerard PostPosted: Sun Dec 24, 2017 14:56
    —
Flasher
Если оставить ту строчку сравнение, то при таком раскладе путей синхронизация не сработает:
Левая панель - "C:\Program Files\"
Правая панель - "D:\Copy\Program Files\"

Quote:
Позиция курсора нужна для сохранения в каком контексте?

Когда возвращаюсь на один каталог вверх, курсор сбрасывается на первый элемент "..", а должен стоять на папке откуда я вышел.

#9:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 15:10
    —
ingerard wrote:
Было бы неплохо это учитывать.
Что "это"?
ingerard wrote:
Когда возвращаюсь на один каталог вверх
Назад (Alt+влево) по истории?

#10:  Author: ingerard PostPosted: Sun Dec 24, 2017 15:25
    —
Quote:
Что "это"?

Quote:
при клике на .. из разноимённых папок не смущает?


Вы сделали скрипт для синхронного захода в папки, в нем все хорошо, только надо еще сделать условие для перехода по ".." если папки вдруг не одноименные, то синхронизацию не делать.

И так же еще нужен отдельно скрипт для синхронного выхода, только с учетом, что папки одноименные. И чтоб курсор был на этой же папке из которой вышли.

Нужно это для двух хоткеев, аналог "Enter", "Backspace"

#11:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 15:52
    —
ingerard wrote:
если папки вдруг не одноименные, то синхронизацию не делать
Вот теперь понятно.
ingerard wrote:
Нужно это для двух хоткеев, аналог "Enter", "Backspace"
Тогда чистой синхронности не получится. Придётся в каждой из панелей выполнять выход. Отдельный скрипт тут совсем ни к чему:
Code:
'••••••••••••••••••••••••• 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


Last edited by Flasher on Thu Dec 28, 2017 01:47; edited 9 times in total

#12:  Author: ingerard PostPosted: Sun Dec 24, 2017 18:47
    —
Flasher
Выдает ошибку:

Code:
Line:   9
Char:   22
Error:   Object required
Code:   800A01A8
Source:    TCScript

#13:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 18:50
    —
ingerard
Какая папка в этот момент в неактивной панели?

#14:  Author: ingerard PostPosted: Sun Dec 24, 2017 18:57
    —
Flasher
C:\ и D:\213\
В любых панелях на любых папках выдает ошибку.

Ссылается именно на .GetTrgPath. Команда .GetSrcPath работает нормально.

#15:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 19:05
    —
ingerard
После замены на .GetInfo("TP") проблема исчезает?

#16:  Author: ingerard PostPosted: Sun Dec 24, 2017 19:13
    —
Flasher
Ошибка исчезла, но заходит только в папку на активной панели, на другой ничего не происходит. Хотя если открыть в двух панелях одинаковые пути, типа "c:\" и "c:\", то срабатывает нормально.

p.s. то есть работает только по точным путям кроме буквы диска, а надо чтоб на путь не смотрело.

#17:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 19:16
    —
ingerard
А на TC x32 как?

#18:  Author: ingerard PostPosted: Sun Dec 24, 2017 19:17
    —
Flasher
А у меня только x32.

#19:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 19:18
    —
ingerard
А система?

#20:  Author: ingerard PostPosted: Sun Dec 24, 2017 19:19
    —
Flasher
Win7 x64.

#21:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 19:34
    —
ingerard
Проблема в GetTrgPath/SetTrgPath на x64, по-видимому.
Добавлено спустя 16 минут:

А как дела обстоят с выходом?


Last edited by Flasher on Sun Dec 24, 2017 23:08; edited 1 time in total

#22:  Author: ingerard PostPosted: Sun Dec 24, 2017 19:52
    —
Flasher
Печально, может можно другим приложением решить задачу? Типа TCFS...

Quote:
А как дела обстоят с выходом?

С ним кстати все нормально.

#23:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 19:56
    —
ingerard
Можно, конечно. Чуть позже выложу с правками. Слегка занят.
ingerard wrote:
С ним кстати все нормально.
Хорошо.
ingerard wrote:
но заходит только в папку на активной панели, на другой ничего не происходит.
Забыл спросить. А одноимённая папка в другой панели точно имелась?
Quote:
то есть работает только по точным путям кроме буквы диска, а надо чтоб на путь не смотрело
Или кто-то случайно использовал первый вариант. Question
Code:
'============================= VBS =============================
' Синхронное открытие одноимённых каталогов/архивов в панелях ТС
' Условие: требуется TCScript.dll
' Ключ запрета несинхронного открытия: /n
'========================= Путь к TCFS2 ========================
TCFS2 = "%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"
'===============================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSS = CreateObject("WScript.Shell")
With CreateObject("TCScript.Helper")
  .Pause = 0 : .Wait = True : .LockTC True
  SP = .GetSrcPath : TP = .GetInfo("TP") : N = .GetInfo("SN")
  If .GetInfo("SN") = ".." Then
    If FSO.GetFileName(SP) = FSO.GetFileName(TP) Then
      If FSO.FolderExists("\\?\" & SP) Then
        For i = 0 To 1 : .SendCommand 2002, 1 : .SendCommand 4006, 1 : Next
      ElseIf FSO.FileExists("\\?\" & Left(SP, Len(SP) - 1)) Then
        WSS.Exec TCFS2 & " /ef ""tcd(`" & SP & ":`,`" & TP & ":`,S)"""
      End If
    End If
  ElseIf FSO.FolderExists("\\?\" & SP & N) Then
    If WSH.Arguments.Named.Exists("n") Then _
    If Not FSO.FolderExists("\\?\" & TP & N) Then WSH.Quit
    WSS.Exec TCFS2 & " /ef ""tcd(`" & SP & N & "`,`" & TP & N & "`,S)"""
  End If : .LockTC False
End With : Set FSO = Nothing


Last edited by Flasher on Sun Dec 24, 2017 22:48; edited 1 time in total

#24:  Author: ingerard PostPosted: Sun Dec 24, 2017 22:28
    —
Flasher wrote:
Забыл спросить. А одноимённая папка в другой панели точно имелась?

Да, конечно.

Flasher wrote:
Или кто-то случайно использовал первый вариант.

Нет, пробовал второй вариант. Только что снова проверил второй вариант, якобы с x64 не работает, так вот если открывать папки с разных дисков и сохранять идентичность путей, то работает. Может дело в другом?

Для наглядности гифка: https://i.imgur.com/vDXwwXp.gifv

Третий скрипт работает, тестирую, пока что нашел баг в параметре /n, он работает наоборот, в одинаковые не заходит.

#25:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 22:45
    —
ingerard wrote:
Может дело в другом?
Может. См. теперь.
Последний тоже поправил, но ключ я проверял, такой проблемы не было.

#26:  Author: ingerard PostPosted: Sun Dec 24, 2017 22:53
    —
Flasher
Супер, второй работает и третий, тестирую что быстрее Smile

Теперь такой вопрос, можно ли сделать какую-то кнопку, при нажатии которой назначался этот скрипт, на клавишу "Enter"?

#27:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 23:00
    —
ingerard wrote:
тестирую что быстрее
Второй должен быть побыстрее.

Кнопку как опцию что ли? Т. е. вкл./выкл. назначение в ТС этой команды на ENTER?

#28:  Author: ingerard PostPosted: Sun Dec 24, 2017 23:08
    —
Flasher wrote:
Кнопку как опцию что ли? Т. е. вкл./выкл. назначение в ТС этой команды на ENTER?

Да, нажимаю на кнопку и далее по клавише "Enter" работает скрипт. И еще как бы решить проблему "Backspace", не всегда удобно возвращать курсор на ".." и нажимать "Enter". Может сделать еще один параметр в скрипте, для отработки именно выхода из папки?

#29:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 23:27
    —
ingerard
Ключ добавил.
Насчёт кнопки думаю. Либо писать резидентный скрипт на AHK наподобие этого. Либо тупо обновлять ключ ENTER секции Shortcuts в wincmd.ini.

#30:  Author: ingerard PostPosted: Sun Dec 24, 2017 23:40
    —
Flasher wrote:
Ключ добавил.

Работает.

AHK это еще один лишний багаж, с которым могут быть проблемы с портативностью Sad

Flasher wrote:
Либо тупо обновлять ключ ENTER секции Shortcuts в wincmd.ini

Я подобное делал, только проблема заключается потребности перезагрузки ТК.

#31:  Author: FlasherLocation: Москва PostPosted: Sun Dec 24, 2017 23:52
    —
ingerard wrote:
AHK это еще один лишний багаж, с которым могут быть проблемы с портативностью Sad
Багаж — да. А вот насчёт портабельности (лучше так называть) мимо. Только на днях объяснял.
ingerard wrote:
только проблема заключается потребности перезагрузки ТК.
А, ну да. Это же не usercmd.ini. Тогда с TCFS2 вызов cm_Confirmation, вставки и подтверждение. Question

#32:  Author: ingerard PostPosted: Mon Dec 25, 2017 00:23
    —
Flasher
Flasher wrote:
Тогда с TCFS2 вызов cm_Confirmation, вставки и подтверждение.

Попробую Smile

У меня тут еще появилась одна просьба. Сделайте и для выхода из папки параметр /n, если он есть то выход из разных папок невозможен, если его нет, то выход только из папки в активной панели.

#33:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 01:16
    —
ingerard
Сделал. Но вообще я изначально так планировал до обозначения одностороннего условия.

P.S.: Только не называйте ключи параметрами, они не зависят от очерёдности.

#34:  Author: ingerard PostPosted: Mon Dec 25, 2017 01:34
    —
Flasher wrote:
Сделал. Но вообще я изначально так планировал до обозначения одностороннего условия.

Спасибо!

Пробую TCFS2, что-то никак не могу выбрать элемент в ComboBox.
Все варианты:

Code:
/ef tcm(495,1)
eval(select_wait(`ENTER`,findwnd(TMyComboBox,,findwnd(TDLGCONFIGALL))))

/ef tcm(495,1)
eval(select_wait(`ENTER`,findwnd(TMyComboBox,,findwnd(TMyGroupBox,,findwnd(TDLGCONFIGALL))))

/ef tcm(495,1)
eval(select_wait(`ENTER`,findwnd(TMyComboBox,,findwnd(TMyGroupBox,,findwnd(TPage,,findwnd(TDLGCONFIGALL)))))

#35:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 12:17
    —
ingerard
Code:
/ef tcm(495,1) eval(select_wait(`ENTER`,findwnd(TMyComboBox,,findwnd(TMyGroupBox,,findwnd(TPage,,findwnd(TNotebook,,findwnd(TDLGCONFIGALL))),1),1))) eval(settext_wait(`em_SwitchSyncChangeDir`,findwnd(TAltEdit,,,0,1)))

Но, как видно, такую установку без кликов и выбора в браузере команд Тотал не воспринимает. Sad

Но есть и 3-й вариант. Назначить em_SwitchSyncChangeDir на ENTER и в usercmd.ini cm_Return менять с командой вызова скрипта.

#36:  Author: ingerard PostPosted: Mon Dec 25, 2017 13:24
    —
Flasher wrote:
Назначить em_SwitchSyncChangeDir на ENTER и в usercmd.ini cm_Return менять с командой вызова скрипта.

Отличный вариант! Но можно подробней чем менять в usercmd.ini извне? TCFS2?

#37:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 13:49
    —
ingerard
Угу:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "if(ini(`%COMMANDER_PATH%\usercmd.ini`,em_SwitchSyncChangeDir,cmd,`1001`),set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SwitchSyncChangeDir,cmd,`em_SyncChangeDir`),
set_ini(`%%COMMANDER_PATH%%\usercmd.ini`,em_SwitchSyncChangeDir,cmd,`1001`))"
wcmicons.dll,75
Вкл/выкл: синхронная смена каталогов в панелях

В em_SyncChangeDir записываем вызов скрипта. Можно сделать и смену иконки в панели.

#38:  Author: ingerard PostPosted: Mon Dec 25, 2017 14:09
    —
Flasher
С учетом что у меня два хоткея Enter и Backspace, то чуть подправил код.

Usercmd.ini
Code:
[em_ScriptE]
cmd=%COMMANDER_PATH%\Addons\TCScript\wscript.exe "%COMMANDER_PATH%\Scripts\SyncDirOpen.vbs"
param=
[em_ScriptB]
cmd=%COMMANDER_PATH%\Addons\TCScript\wscript.exe "%COMMANDER_PATH%\Scripts\SyncDirOpen.vbs"
param=/b
[em_SyncDirOpen]
cmd=1001
[em_SyncDirBack]
cmd=2002
[em_SyncDirSwitch]
cmd=%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe /ef "if(Ucmd(em_SyncDirOpen,`1001`),sc_E(`em_ScriptE`)+sc_ico(`463`),sc_E(`1001`)+sc_ico(`75`)) if(Ucmd(em_SyncDirBack,`2002`),sc_B(`em_ScriptB`),sc_B(`2002`)) msg($0B,0) tcm(2945) tcm(4004) msg($0B,1) send({ESC})"


TCFS2.ini
Code:
Ucmd=ini(`%COMMANDER_PATH%\usercmd.ini`,#1,cmd,#2)
sc_E=set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirOpen,cmd,#1)
sc_B=set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirBack,cmd,#1)
sc_ico=set_ini(`%COMMANDER_PATH%\Default.bar`,Buttonbar,button6,`wcmicons.dll,`#1)


Кнопка:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe /ef "if(Ucmd(em_SyncDirOpen,`1001`),sc_E(`em_ScriptE`)+sc_ico(`463`),sc_E(`1001`)+sc_ico(`75`)) if(Ucmd(em_SyncDirBack,`2002`),sc_B(`em_ScriptB`),sc_B(`2002`)) msg($0B,0) tcm(2945) tcm(4004) msg($0B,1) send({ESC})"

wcmicons.dll,75
Вкл/выкл: синхронная смена каталогов в панелях

-1


Иконка, может кому пригодится:
Link

Flasher wrote:
Можно сделать и смену иконки в панели.

Было бы неплохо. Я так понимаю это надо редактировать в баре button=?


Last edited by ingerard on Tue Dec 26, 2017 11:54; edited 5 times in total

#39:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 14:17
    —
ingerard
Через часок вернусь — добьём.

#40:  Author: ingerard PostPosted: Mon Dec 25, 2017 14:41
    —
Flasher
Хорошо, я выше чуть подредактировал, наверно не сильно оптимизировано...

#41:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 18:06
    —
ingerard
Более менее. Только пути к скрипту надо в кавычки брать на случай переноса.
Сами записи при желании можно оптимизировать за счёт созданных команд/макросов в TCFS2.ini. А обновлять по принципу:
Code:
"if(ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirOpen,cmd,`1001`),set_ini(-/-)+set_ini(`%COMMANDER_PATH%\UserBar.bar`,Buttonbar,button50,`Icons\1.ico`),set_ini(-/-)+set_ini(`%COMMANDER_PATH%\UserBar.bar`,Buttonbar,button50,`Icons\2.ico`)) tcm(2945)

#42:  Author: ingerard PostPosted: Mon Dec 25, 2017 21:25
    —
Flasher
Сделал, может и коряво, но работает Smile Выше обновил.

#43:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 22:17
    —
ingerard
Коряво работает или сделал? Smile
Я бы в TCFS2.ini так записал:
Code:
[Macros]
Ucmd=ini(`%COMMANDER_PATH%\usercmd.ini`,#1,cmd,#2)
sc_E=set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirOpen,cmd,#1)
sc_B=set_ini(`%COMMANDER_PATH%\usercmd.ini`,em_SyncDirBack,cmd,#1)
sc_ico=set_ini(`%COMMANDER_PATH%\Default.bar`,Buttonbar,button6,`wcmicons.dll,`#1)
А в em_SyncDirSwitch подставлял бы соответствующие переменные.

Вообще 76 иконка несколько сомнительна. Лучше потратить пару-другую минут для вставки крестика в вызволенную 75-ю.
Также в угоду скорости вызова я предпочитаю в кнопках писать команду запуска приложения, а не пользовательскую.

#44:  Author: ingerard PostPosted: Mon Dec 25, 2017 22:53
    —
Flasher wrote:
Коряво работает или сделал?

Выглядит коряво, но работает хорошо Very Happy Но конечно же возьму ваш вариант.
Flasher wrote:
Вообще 76 иконка несколько сомнительна

Та то я для примера поставил, а так то я сразу сделал иконку с фоном как нажатая.
Flasher wrote:
в кнопках писать команду запуска приложения, а не пользовательскую.

Можете подробней, не совсем понял.

#45:  Author: FlasherLocation: Москва PostPosted: Mon Dec 25, 2017 23:03
    —
ingerard wrote:
но работает хорошо Very Happy
Это радует. Smile
ingerard wrote:
Но конечно же возьму ваш вариант.
Надеюсь, с подстановками проблем не возникнет. Wink
ingerard wrote:
а так то я сразу сделал иконку с фоном как нажатая.
А, ну, ОК.
ingerard wrote:
Можете подробней, не совсем понял.
Я выше приводил пример с кнопкой вызова TCFS2. em_SyncDirSwitch я бы делал только для хоткея и/или главного меню, но не для кнопки.

#46:  Author: ingerard PostPosted: Tue Dec 26, 2017 00:43
    —
Flasher wrote:
Надеюсь, с подстановками проблем не возникнет.

Все подставил, все работает, выше обновил Smile
Flasher wrote:
em_SyncDirSwitch я бы делал только для хоткея и/или главного меню, но не для кнопки.

Сделал. Только разницы в скорости не заметил Smile А вот когда с флешки работаешь, то заметна подгрузка иконки/бара.

#47:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 01:38
    —
ingerard
Молодчага!

ingerard wrote:
А вот когда с флешки работаешь, то заметна подгрузка иконки/бара.
Это в обоих вариантах? Кстати, флешка флешке рознь. Если SSD USB 3.0, то хуже быть точно не может.

#48:  Author: ingerard PostPosted: Tue Dec 26, 2017 10:19
    —
Flasher wrote:
Это в обоих вариантах? Кстати, флешка флешке рознь.

Та это флешка тугая.

Нашел баг - при выходе из папки присутствует чувствительность к регистру символов. То есть, если папки User|user, то зайдет норм, а выйдет только с активной.
Правильно ли будет добавить?
Code:
If LCase(FSO.GetFileName(SP)) = LCase(FSO.GetFileName(TP)) Then

#49:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 10:59
    —
ingerard
Исправил. Но учёт регистра необязательно багом называть, в некоторых случаях бывает и полезен.

ingerard wrote:
Та это флешка тугая.
А насчёт вариантов? Можно ещё сравнить что в визуальном плане приемлемей tcm(2945) или msg($0B,0) tcm(2945) msg($0B,1) redraw().
Или msg($0B,0) tcm(2945) tcm(4004) msg($0B,1) tcm(4005) даже.


Last edited by Flasher on Fri Jan 05, 2018 01:42; edited 1 time in total

#50:  Author: ingerard PostPosted: Tue Dec 26, 2017 11:36
    —
Flasher wrote:
Исправил. Но учёт регистра необязательно багом называть, в некоторых случаях бывает и полезен.

Спасибо. Да чуть не так выразился.
Flasher wrote:
Или msg($0B,0) tcm(2945) tcm(4004) msg($0B,1) send({ESC}) даже.

Этот вариант самый лучший, меньше мерцаний в интерфейсе ТК.

#51:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 11:38
    —
ingerard
ОК. Осталось только в примерах поправить. Cool

#52:  Author: ingerard PostPosted: Tue Dec 26, 2017 11:55
    —
Flasher
Поправил. Smile

#53:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 13:09
    —
ingerard
Вэри гуд. На всякий случай. Скрипт из архивов из обеих панелей синхронно выходит?

#54:  Author: ingerard PostPosted: Tue Dec 26, 2017 13:30
    —
Flasher
Кстати в архивах я не пробовал. Проверил, нормально не работает, только раз как-то выход срабатывает, но не при одновременно открытых архивах в двух панелях, а только в одной.

И еще баг обнаружил при выходе.
Открыты:
Левая панель - D:\Progs\TotalCommander\
Правая панель - E:\TotalCommander\Addons\

Если выходить назад в левой панели, то выход срабатывает синхронно, хотя не должен, а если выходить назад в правой, но нормально.


Last edited by ingerard on Tue Dec 26, 2017 13:51; edited 1 time in total

#55:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 13:48
    —
ingerard
Это при каких ключах?

#56:  Author: ingerard PostPosted: Tue Dec 26, 2017 13:56
    —
Flasher wrote:
Это при каких ключах?

А я никаких ключей больше не добавлял, хотя "%Z" надо? И выше еще описал один баг.

#57:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 14:27
    —
ingerard
Ага. Значит, последняя правка была неточной. См. как сейчас.
%Z требуется только при наличии иных ТС-шных параметров, т. ч. нет.

#58:  Author: ingerard PostPosted: Tue Dec 26, 2017 16:04
    —
Flasher wrote:
См. как сейчас.

Теперь нормально. С архивами так и не работает, хотя наверно не особо надо, но как назло понадобится Smile

#59:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 16:54
    —
ingerard wrote:
С архивами так и не работает
Не понимаю. В обеих панелях открыт одноимённый архив, выход происходит синхронно. Если — только в одном архиве, то выход происходит в зависимости от наличия /n, всё как положено.

#60:  Author: ingerard PostPosted: Tue Dec 26, 2017 16:59
    —
Flasher wrote:
В обеих панелях открыт одноимённый архив, выход происходит синхронно.

Аа, только выход из архивов... а я насчет синхронизации папок внутри архива.

#61:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 18:23
    —
ingerard
Проблема в том, что я не могу идентифицировать нахождение внутри архива кроме как перебором путевой цепочки с проверкой типа. Это может несколько замедлить скорость. Могу добавить, если есть желание протестировать. А пока сделал поддержку файлсистемных плагинов с файловой структурой (BadCopy, Back2life, DiskInternals Reader, NTFS - streams). Выход из глубины архивов также должен работать.

#62:  Author: ingerard PostPosted: Tue Dec 26, 2017 18:26
    —
Flasher
Не, думаю не стоит, замедление очень критично, и так полсекундный отклик уже присутствует.

Quote:
А пока сделал поддержку файлсистемных плагинов с файловой структурой (BadCopy, Back2life, DiskInternals Reader, NTFS - streams). Выход из глубины архивов также должен работать.

Испробую, а это дополнение на скорость не влияет?

#63:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 18:33
    —
ingerard
Полсекунды? Shocked Это много. У меня 0.12-0.14 сек в среднем.
ingerard wrote:
Испробую, а это дополнение на скорость не влияет?
Любая проверка влияет. Но несущественно.
Добавил ещё открытие файлов (Как мы вообще это упустили? Shocked) и, соответственно, несихронный вход в архив.

#64:  Author: ingerard PostPosted: Tue Dec 26, 2017 21:38
    —
Flasher wrote:
Полсекунды? Shocked Это много.

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

Я думал это фича такая Very Happy Типа с каталогами только работает та и ладно. Но думаю пригодится открытие. Ща буду тестить.

Что-то поломалось, с левой панели нажимаю на папку, справа заходит, а слева нет, нажимаю еще раз, заходит и в эту. С правой панели нормально.

#65:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 22:22
    —
ingerard wrote:
Может конечно и меньше
Да скорее всего.
ingerard wrote:
Я думал это фича такая
А как работать-то? После синхронизации наверняка что-то запускать понадобится для сравнения.

Что-то какая-то странная история с левой/правой панелью. Добавил задержку после входа в противоположной. Как с ней?

#66:  Author: ingerard PostPosted: Tue Dec 26, 2017 22:36
    —
Flasher wrote:
Добавил задержку после входа в противоположной. Как с ней?

Теперь нормально. Как-то сложно код оброс Rolling Eyes
Нет, не нормально, бывает проскакивает глюк.

#67:  Author: FlasherLocation: Москва PostPosted: Tue Dec 26, 2017 22:46
    —
ingerard
В 26 строке можно наращивать 20: 25, 30, 40, ...
Принципильно в этой части он и не изменился. По логике и ранее должна была возникать такая ситуация.

#68:  Author: ingerard PostPosted: Tue Dec 26, 2017 23:00
    —
Flasher
Поставил 40, пока вроде достаточно, завтра усерднее протестирую.

#69:  Author: FlasherLocation: Москва PostPosted: Thu Dec 28, 2017 01:52
    —
ingerard
Ещё немного калибровки. Сделал вход в корни распаковываемых файлов
и установку курсора в другой панели на одноимённик при запуске файла.

#70:  Author: ingerard PostPosted: Thu Dec 28, 2017 11:16
    —
Flasher
Испробовал, норм.

p.s. Тут обнаружил альтернативу - FreeCommander, в ней реализован синхронный просмотр на отлично, там даже курсор двигается по одинаковым элементам. Почему Гислер сделал такой обрубок не понятно. Я пытался ему донести мысль, а от него никакой реакции.

#71:  Author: FlasherLocation: Москва PostPosted: Thu Dec 28, 2017 12:10
    —
ingerard
Давно не щупал FreeCommander. Может, он и не единственный, который так умеет. Ссылка на донесённую мысль не помешала бы.

#72:  Author: ingerard PostPosted: Thu Dec 28, 2017 13:44
    —
Flasher
Вот:
https://www.ghisler.ch/board/viewtopic.php?t=49130

Может я ужасно объясняю Rolling Eyes

#73:  Author: FlasherLocation: Москва PostPosted: Thu Dec 28, 2017 15:57
    —
ingerard
Да вроде нормально. Гифки есть — уже хорошо.

#74:  Author: FlasherLocation: Москва PostPosted: Thu Jan 04, 2018 23:34
    —
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).

#75:  Author: JKTLocation: Харьков PostPosted: Mon Jun 04, 2018 10:09
    —
Quote:
Условие: требуется TCScript.dll

Т.е. его достаточно кинуть в системные папки и зарегить в с-ме, или еще какие телодвижения надо производить?

#76:  Author: FlasherLocation: Москва PostPosted: Mon Jun 04, 2018 19:56
    —
JKT
Там, откуда ты качал dll, пункты 1, 2, 7 выполнены?

#77:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 00:03
    —
Flasher
1 - положил 64-ю wscript.exe из C:\Windows\SysWOW64\ в папку.
2 - рядом положил TCScript.dll из архива.
Сделал кнопку из скрипта на прошлой странице
Code:
TOTALCMD#BAR#DATA
F:\TCScriptHelper\wscript.exe "%COMMANDER_PATH%\Scripts\SyncroOpenCatalog.vbs"

%COMMANDER_PATH%\Icons\!Кружки\balls_006.ico
Синхр смена каталогов - SyncroOpenCatalog


-1

Выбивает ошибку :

У меня Win7x64, TC-9.12_32-x. Запускал и 64-х - рез-т тот-же.
Что не так делаю?

#78:  Author: FlasherLocation: Москва PostPosted: Tue Jun 05, 2018 01:35
    —
JKT
А манифесты? Они в архиве не для красоты, наверно. Wink
И почему не в %СOMMANDER_PATH%\<Scripts|Addons>, а на F:\?

#79:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 09:56
    —
Flasher
О. Что-то начало получаться. Переместил все 4 файла с манифестами в %COMMANDER_PATH%\Scripts\
Сделал кнопку из примера со статьи (Показать число отображаемых объектов в активной панели) - она работает - в окошке высвечивает.
А вот синхр смена - не пашет. Никакую уже ошибку не выдает, но и не фурычит - нажимаю кнопку, входит в каталог под курсором, ничего синхронно в соседней панели не происходит, нажимаю еще раз - выходит из каталога. Ну прям полный аналог нажатия "Enter". Smile
Куда рыть?

#80:  Author: FlasherLocation: Москва PostPosted: Tue Jun 05, 2018 12:39
    —
JKT
Начнём с выполнения 1 пункта снизу памятки. Smile

#81:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 13:09
    —
Flasher
Эээээ.... Какой памятки? Ты пальцем покажи Smile

#82:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Jun 05, 2018 13:11
    —
JKT
Той самой, которая специально прикреплена на странице подфорума и без чтения которой здесь, строго говоря, вообще обсуждать нечего.

#83:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 14:19
    —
Вот:
2) Никакой ошибки не выскакивает
3)
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Scripts\wscript.exe "%COMMANDER_PATH%\Scripts\SyncroOpenCatalog.vbs"

%COMMANDER_PATH%\Scripts\balls_006.ico
Синхр смена каталогов - SyncroOpenCatalog

-1

4) TC 9.12 32x (64x) - в обеих разрядностях TC результат одинаков.
5) Win7x64 SP1
6) wscript.exe из C:\Windows\SysWOW64\
--
F:\TCM\Scripts\wscript.exe
on Microsoft Windows Seven x64 Professional Edition Version 6.1 (build 7601) Service pack 1

File Version Information :

Version language : Русский (Россия)
CompanyName : Microsoft Corporation
FileDescription : Microsoft ® Windows Based Script Host
FileVersion : 5.8.7600.16385
InternalName : wscript.exe
LegalCopyright : © Microsoft Corporation. All rights reserved.
OriginalFilename : wscript.exe.mui
ProductName : Microsoft ® Windows Script Host
ProductVersion : 5.8.7600.16385

Creation Date : 05/06/2018 13:00:47
Last Modif. Date : 12/10/2013 04:15:48
Last Access Date : 05/06/2018 13:09:45
FileSize : 141824 bytes ( 138.500 KB, 0.135 MB )
FileVersionInfoSize : 1796 bytes
File type : Application (0x1)
Target OS : Win32 (0x4)
File/Product version : 5.8.7601.18283 / 5.8.7601.18283
Language : Русский (Россия) (0x419)
Character Set : 1200 (ANSI - Unicode (BMP of ISO 10646)) (0x4B0)

Build Information :
Debug Version : no
Patched Version : no
Prerelease Version : no
Private Version : no
Special Build : no

#84:  Author: FlasherLocation: Москва PostPosted: Tue Jun 05, 2018 14:22
    —
JKT
Издеваешься? Я же написал:
Flasher wrote:
с выполнения 1 пункта
Первого, а не всех остальных. Laughing
Quote:
... Укажите ссылку на нужный пост, если скриптов в топике приведено более одного. ...

#85:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 14:37
    —
Flasher
Упс... Перестарался
http://forum.wincmd.ru/viewpost.php?p=125626

#86:  Author: FlasherLocation: Москва PostPosted: Tue Jun 05, 2018 14:56
    —
JKT wrote:
нажимаю кнопку, входит в каталог под курсором, ничего синхронно в соседней панели не происходит, нажимаю еще раз - выходит из каталога. Ну прям полный аналог нажатия "Enter".
Ты вообще понимаешь суть синхронного открытия (когда задействована опция, включаемая по cm_SyncChangeDir)? В обеих панелях должны располагаться одноимённые каталоги. Если это условие не выполнено и не указан ключ /n, то навигация в активной панели будет продолжена, ибо синхронизироваться в данный момент не с чем.

#87:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 15:15
    —
Flasher
Я понимаю, что такое "синхронно".
Расположил в обеих панелях одно и то-же. Курсор на каталог справа. Жму кнопку - заходит в каталог справа. Слева так-же заходит. И всё. Дальше все как обычно - передвижение по одной панели (где курсор) без смены в соседней панели.
Ты скажи, этот скрипт работает точно так-же как и в FreeCommander, насчет которого вы с человеком говорили в теме топика? Почитавши, я попробовал эту функцию, как она реализована в фрикоммандер'е, и понял, чего мне в тотале не хватало. Или этот скрипт отрабатывает как-то по другому?
Малость сумбурно объяснил, но если что, сооружу гифку и вкину, чтоб было понятней, как и что у меня работает/не работает.
И да... Ключи в шапке скрипта видел, но вот куда их и как...? Может в этом все дело?

#88:  Author: FlasherLocation: Москва PostPosted: Tue Jun 05, 2018 15:44
    —
JKT wrote:
Дальше все как обычно - передвижение по одной панели (где курсор) без смены в соседней панели.
Не понял. О смене чего идёт речь? Одноимённого каталога при выполнение скрипта?
JKT wrote:
Ты скажи, этот скрипт работает точно так-же как и в FreeCommander, насчет которого вы с человеком говорили в теме топика?
Я вообще не ориентировался на FreeCommander и написал, что давно им не пользовался. Только на стартовый пост и проблему с cm_SyncChangeDir.
Дублировать курсорную навигацию по стрелкам как там тут весьма проблематично и нецелесообразно. Хотя это было бы действительно удобно. С таким только к Гислеру.
JKT wrote:
И да... Ключи в шапке скрипта видел, но вот куда их и как...? Может в этом все дело?
Что значит "куда"? Аналогично любым командным программам в качестве аргументов. И тем более "как"? Ручками всё, ручками.
И дело не в этом. Ключи по своей сути не являются обязательными аргументами.

#89:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 16:32
    —
Flasher
Quote:
Ручками всё, ручками.
Very Happy
Поставил в параметры кнопки "/n" - результаты те-же.
Quote:
Я вообще не ориентировался на FreeCommander и написал, что давно им не пользовался

А я им вообще никогда не пользовался, и даже не знал про существование такового. Но почитавши топик, увидя, что даже написали (ingerard) предложение (и с гифкой) Самому, по поводу реализации такой фичи, решил скачать (благо, что портабельный) и попробовать, что такого смогли начудесить разрабы этого ФриКомм. Мне жесть как понравилось - часто нужно такое.
Quote:
Не понял. О смене чего идёт речь? Одноимённого каталога при выполнение скрипта?

Да. Чтоб нажать кнопку, - скрипт выполняется пока ты второй раз не нажмешь (для отмены). Ну то есть, чтоб все переходы, входы, и т.д, делающиеся (к примеру в правой/левой) панели, чтоб делались зеркально (синхронно) и в противоположной?
Flasher
Просвети лапотного, что не так делаю?

#90:  Author: FlasherLocation: Москва PostPosted: Tue Jun 05, 2018 16:41
    —
JKT wrote:
Поставил в параметры кнопки "/n" - результаты те-же.
Не может быть. В случае отсутствия одноимённого объекта вход осуществляться не будет. Там же написано.
JKT wrote:
А я им вообще никогда не пользовался
Хм. Даже так.

Скрипт — это не опция. Это инструмент открытия. В шапке же дано описание "Синхронное открытие одноимённых каталогов/архивов в панелях ТС", а не опция переключения это открытия. Как делать опцию для Enter/Backspace мы в топике разбирали на примере usercmd.ini и TCFS2. Ты хоть почитал бы для начала.

#91:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 17:56
    —
Flasher
Ясно.
Давай, чтоб не замусоривать тему бесполезными "а что и почему", я всё таки сделаю гифки то, что как-бЕ хотелось, и то, что у меня получается. Ты глянешь, и возможно подскажешь решение.
Просто уже не знаю. Все "предписания" выполнил полностью. Ошибки если-б выдавало, то хоть что-то,...А так.
Проверил само тело скрипта, думал, вдруг где ошибся при копировании - всё нормально - один в один. Ключ поставил (/n), хотя ты пишешь, что не критично и не обязательно.
-
Глянул твою ссылку.... Сори, я не программист, у меня только начальные, и там я просто не разберусь, слишком для меня. Я знаю (ну только базовое), как VBS запускать, но как их настраивать... Для меня это темный лес. Если что, то видно не судьба
Ну полчасика. Типа гифки сделаю. А там возможно мне повезет (с твоей помощью)? Smile

#92:  Author: FlasherLocation: Москва PostPosted: Tue Jun 05, 2018 18:09
    —
JKT
И что мне дадут гифки? По сути ничего. ingerard вроде тоже не программист, но с задачей легко справился. Тебе нужно только скопипастить всё по указанным конфигам и поменять пути к файлам в ini на свои. Потом испытывать тамошнюю кнопку-опцию.

Только один важный момент для нижней строки к TCFS2.ini:
Quote:
sc_ico=set_ini(`%COMMANDER_PATH%\Default.bar`,Buttonbar,button6,`wcmicons.dll,`#1)
Номер кнопки (выд. красным) нужно сопоставить со своим.

#93:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 19:02
    —
Flasher
Так это еще и глюкавый TCFS2 должен стоять? Shocked
Помню намучился как-то с ним. Окна мне перебивал аж на раз. То открывает в полноэкран, то как хочет закрывает, не учитывая фоновых... То панели под себя строит.. Бардак.
Ладно, буду разбираться. Чувствую, что без поллитра тут разобраться не получится. Smile
Flasher Спасибо тебе за помощь в моём скорбном предприятии. Бум читать и пробовать. Получится - отпишусь, если нет - значит геройски пал в борьбе с буквами на экране. Very Happy

#94:  Author: FlasherLocation: Москва PostPosted: Tue Jun 05, 2018 19:07
    —
JKT
Вот не надо только тут на TCFS2 наезжать и называть его глюкавым. Как раз он самое быстрое и вполне надёжное из всего, что имеется по схожей тематике на сей момент.
Если у тебя были или есть проблемы по нему, то никто не мешает решать по месту спроса, чтобы остановить твои мучения. Никакого там бардака. Сам он ничего не строит под себя. Это только криворукость и неправильная комбинация команд может привести к ненужным результатам.
Пол-литра тут не потребуется. Я написал, что нужно исправить. ingerard за других уже 96% сделал (собрал).
Если что-то не получится, то давай по конкретике.

#95:  Author: JKTLocation: Харьков PostPosted: Tue Jun 05, 2018 19:57
    —
Flasher
Да ладно... Я ведь пошутил, хотя именно вышепреведенный сабж мне "доставил" в свое время немало веселухи.
А по теме, надеюсь ув. Avada не потрёт, как за флуд. В военном деле есть такое понятие, как "Приемлемые потери".
"Допустимые, приемлемые потери" - acceptable loss - военный эвфемизм, описывающий потери личного состава или разрушения в результате действий врага, которые считаются незначительными или приемлемыми".
Собственно, что усилия для решения задачи, должны быть соразмерны или меньше по сравнению с выгодой от результата решения.
Но часто бывает, что усилия по решению превосходят выгоду, а сие не есть гуд.
Так и тут. Для решения казалось-бы простой задачи, как синхронно отображать левую/правую панель от курсора в противоположной - такие мозголомные напряжения с привлечением всяких сторонних программ и ресурсов.[/b]
Надеюсь ваш месадж дойдёт до Гислера и он подумает над этим. Эта фишка была-бы очень и очень.

#96:  Author: FlasherLocation: Москва PostPosted: Tue Jun 05, 2018 20:23
    —
JKT
Если хочешь просто высказаться, есть ЛС и спойлеры.
А по месседжу никто не мешает написать в поддержку.

#97:  Author: FlasherLocation: Москва PostPosted: Thu Jun 07, 2018 01:52
    —
JKT
Если получится освоить инструмент, то рекомендую обновить версию ТС. Там есть нужная правка, касаемая ситуаций с подвисаниями для выбранной версии.

#98:  Author: JKTLocation: Харьков PostPosted: Thu Jun 14, 2018 22:48
    —
Flasher, доброго времени суток.
Я эту тему всё таки победил!
Несколько раз брался, читал топик, не получалось, бросал, но полюбе все нормально стало.
Не хотел уже надоедать в теме.
Оказалось, что все дело было (как обычно/иногда) бывает с кавычками и пробелами. Разобрался, на чистом тотале пробовал - получилось. Потом методом исключения все таки нашел в чем была моя ошибка.
Благодарю за участие и естественно, кто принимал участие в составлении сего скрипта. Хотя, в каких-то неопределенных (не увидел закономерностей случаях) просто не срабатывает. Да и ладно.
-
Но всё одно, ув. Гислеру можно было бы и подумать над этим, потому, как, к примеру, я вот на днях ради интереса поставил еще один, довольно известный менеджер файлов - там это все решено нативно.
-
Я, кстати, когда ты дал ссылку на поддержку этой фичи, пытался там оставить своё, но не смог зайти для камента, т.к. оказывается я там уже сто лет назад был зареген, но пароль утерян, а ящик мой не принимал, по причине "он уже используется", а перерегиваться , заводить новый ящик, чес говоря было ломно и некогда. А так-бы в поддержку отписался-бы. Но думаю на днях отпишусь, хотя судя по количеству ответов , чего-то мало кого это интересует, к сожалению. Возможно САМ и заметит этот топик.
Еще раз спасибо и Удачи.

#99:  Author: FlasherLocation: Москва PostPosted: Thu Jun 14, 2018 23:13
    —
JKT
Доброго. Топик весь я не рекомендовал читать.
Единственное забыл написать о привязке em_SwitchSyncChangeDir к ENTER.
Насчёт кавычек и пробелов можно подробней?

JKT wrote:
Хотя, в каких-то неопределенных (не увидел закономерностей случаях) просто не срабатывает.
Всё-таки хотелось бы увидеть конкретные примеры.

Гислеру, как я понимаю, важно чтобы новинка была интересна ему или хотя бы группе нескольких пользователей. Поэтому поддержка всегда идёт на пользу.
P.S.: Насчёт пароля можно написать в админку оффорума.

#100:  Author: JKTLocation: Харьков PostPosted: Thu Jun 14, 2018 23:54
    —
Flasher wrote:
JKT
Топик весь я не рекомендовал читать.

Да, но зато я многое для себя узнал. Всё на пользу. И никак не жалею. Время потрачено не зря.
Quote:
Насчёт кавычек и пробелов можно подробней?

Если честно, я уже и не помню. Записей не вел, что и где, бывало просто читал и в справке комманд к самому тоталу, разбирался, в основном методом "научного тыка", потому сейчас ну никак. Это мне перелопачивать всё заново? Чес говоря никак. Сори.
Quote:
Quote:
Хотя, в каких-то неопределенных (не увидел закономерностей случаях) просто не срабатывает.
Всё-таки хотелось бы увидеть конкретные примеры.

То-же самое. Я ж написал, что закономерностей не увидел. Если-бы увидел, то естественно отписался-бы, дабы можно было-бы усовершенствовать скрипт.
Потому, по этим двум вопросам у меня - ноль. Просто буду знать - если будет попадаться ситуация, когда не срабатывает - обязательно тут отпишусь, когда, при каких обстоятельствах и т.п.
Quote:
Гислеру, как я понимаю, важно чтобы новинка была интересна ему или хотя бы группе нескольких пользователей. Поэтому поддержка всегда идёт на пользу.... Насчёт пароля можно написать в админку оффорума.

Я обязательно в теме отпишусь на днях, и мне легче, быстрей и проще будет перерегиться, чем писать во всякие админки (еще и с моим знанием инглиша) - я-ж, если и отпишусь, то только через гуглоперевод, хотя он сейчас весьма -и весьма приличный, во всяком случае понять можно.

Добавлено спустя 5 минут:

ЗЫ.
К примеру, недавно намучился с одной ерундой, казалось-бы - простая команда, - у всех срабатывает - у меня никак - дня два мучил народ на одном форуме - никак. Все уже плюнули. Один даже предложил с-му переставить Smile
Оказалось, что батник, который они мне предложили, на дух не переваривает знак "~" если есть в пути. Все было так просто, а ломали бошки конкретно.
Ну то так.

#101:  Author: FlasherLocation: Москва PostPosted: Fri Jun 15, 2018 00:31
    —
JKT wrote:
Время потрачено не зря.
Это хорошо. Ты мне главное скажи. Синхронный заход/выход по Enter/BackSpace у тебя работает?
JKT wrote:
если будет попадаться ситуация, когда не срабатывает - обязательно тут отпишусь
Гуд.

JKT wrote:
то только через гуглоперевод
Куда лучше Яндекс или Bing. QTranslate в помощь.

#102:  Author: JKTLocation: Харьков PostPosted: Fri Jun 15, 2018 01:52
    —
Flasher
Помойму ты попал своим вопросом прям в пипачку. Вот , что значит специалист. Не сочти за подхалимаж. По БакСпейсу иногда перескакивает на каталог ВЫШЕ. Но обычно нормально, как и надо. Не могу понять почему. Может какие символы в пути ему не нравятся....
По Ентеру - вроде пока никаких косяков не замечал.
Ну типа ВНИЗ.
Надеюсь те это поможет?
PS
Да, проверь обработку скрипта на наличие в пути всяких юникодных символов. Была такая трабла в какой-то шняге. У меня одна ерунда ну никак не хотелась распознаваться - оказалось в названии затесалась (сейчас не помню) типа "а", а оказалась, что она совсем не "а", а "а", но в другой кодировке, потому нихрена не работало. Ну то так, инфа к размышлению.

#103:  Author: FlasherLocation: Москва PostPosted: Fri Jun 15, 2018 02:22
    —
JKT
Насчёт Backspace нужна конкретная ситуация. Не исключено, что это клавиатурная проблема залипаний.
JKT wrote:
а оказалась, что она совсем не "а", а "а"
Все 'а' в данной цитате одинаковые.

P.S.: Потише с эрративами и дворовым сленгом, у нас вполне культурный форум.

#104:  Author: JKTLocation: Харьков PostPosted: Fri Jun 15, 2018 02:41
    —
Flasher
Ладно. Сори за "дворовый сленг". Чисто пивка вечерком выпил. Расслабился.
Но сути не меняет
Я ведь про присутствии в названиях файлов/каталогов "нелицеприятных" с т.з. windowsa всяких букАвок.
Тут идет речь про то, что если ты обзавешь чегото свое не так, какуюто буквицу вставишь "не ту", то все работать перестанет. Чи не так?
Я это к чему.... У виндосов, до сих пор проблемы имеются с юникодом, а точнее не у них, а у разрабов ПО, как к примеру , которые не могут и переделать свои окошки типа "Сохранить как..." размером с куринное яйцо. Много прог этим страдают

#105:  Author: FlasherLocation: Москва PostPosted: Fri Jun 15, 2018 03:01
    —
JKT
Никаких особых проблем с Юникодом при навигации у ТС (а значит, и у скрипта) нет.

P.S.: Пивко? Теперь понятно, почему ситуация не улучшается.

#106:  Author: JKTLocation: Харьков PostPosted: Fri Jun 15, 2018 03:02
    —
я это к чему говорю. Вот к примеру дам тебе ссылку на скачку... они будут выглядеть один к одному
но они будут разными. И это проблема...
Но это уже флуд не по теме, наверное Авада с утра возможно все потрет. Надеюсь не забанит ))))))

Добавлено спустя 25 минут:

Flasher
Камрад, ты в ТС понимаешь в миллион раз больше чем я, но согласись, что у этой программы всегда были проблемы с юникодом. Гислер их решает, но не до конца. Это какие-то заплатки.
Вот недавно, отослал я по FTP через TC доки - получили мои клиенты кучу кракозябров. Потом, после кучи матюков сразу отослал через другую прогу - все нормально.
Но надо ж как-то ?

#107:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Jun 15, 2018 06:47
    —
JKT
Для начала — не надо писать тут посты в "расслабленном" состоянии. Пиво кончится, а языковые вольности останутся.
Насчёт "отослал я по FTP через TC доки" сильно сомневаюсь, что дело в поддержке Юникода. Вовнутрь этих файлов TC в любом случае не лезет. А нюансы FTP-соединения — вопрос отдельный и не для этой темы.
Оффтоп и флуд прекращаем, стиль сообщений держим в порядке. Далее попрошу высказываться только по делу в пределах темы.

#108:  Author: HEXFIXLocation: Калининград PostPosted: Wed Apr 29, 2020 17:14
    —
Сделал всё, как в примере, разумеется, заменив пути на свои. Но не отрабатывает. Т.е. после нажатия кнопки на панели инструментов синхронной смены каталогов не происходит. Причём сам скрипт работает.
Что делаю не так?

#109:  Author: FlasherLocation: Москва PostPosted: Wed Apr 29, 2020 20:03
    —
HEXFIX wrote:
Что делаю не так?
Обращение не по памятке.

#110:  Author: HEXFIXLocation: Калининград PostPosted: Wed Apr 29, 2020 21:01
    —
При вставке ссылок, форум не отображает мой пост.

1. Второй скрипт на первой странице этого топика
2. Нет никаких ошибок
3. Третья страница обсуждения, восьмой пост сверху. Копипейст с заменой путей на свои
4. 9.51
5. Win10 64-bit
6. Из комплекта переносного TCScript Helper

#111:  Author: FlasherLocation: Москва PostPosted: Wed Apr 29, 2020 21:30
    —
HEXFIX wrote:
При вставке ссылок, форум не отображает мой пост.
Советую админу в ЛС написать. Не должно быть такого.

1. А почему не этот?

HEXFIX wrote:
после нажатия кнопки на панели инструментов синхронной смены каталогов не происходит.
По Enter? А что происходит?

#112:  Author: HEXFIXLocation: Калининград PostPosted: Wed Apr 29, 2020 21:43
    —
Пробовал и этот скрипт. Тот же самый результат
При нажатии Enter просто открывается папка в активной панели. Неактивная панель с одноимённым каталогом не меняется.
Сами же скрипты рабочие. Смена каталога происходит, т.е. я просто закинул скрипт на панель инструментов прописал параметр, открыл в обеих панелях одноименные каталоги, поставил курсор на подкаталог, нажал на кнопку скрипта, попал в этот подкаталог в обеих панелях. А вот способ описанный в примере не работает.
Мне даже в путях особо ничего менять не пришлось — "Addons" изменил на "Tools" и всё

#113:  Author: FlasherLocation: Москва PostPosted: Wed Apr 29, 2020 22:36
    —
Судя по всему, em_SyncDirOpen/em_SyncDirBack не привязаны к Enter/Backspace.
TCFS2.ini нужно править в секции макросов. Судя по отсутствию ошибок, так и сделано.

HEXFIX wrote:
"Addons" изменил на "Tools" и всё
Не всё.
Quote:
%COMMANDER_PATH%\Addons\TCScript\wscript.exe
"%COMMANDER_PATH%\Scripts\SyncDirOpen.vbs"
%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe
%COMMANDER_PATH%\Default.bar

P.S.: Видимо, придётся полноценный установщик делать. Может, даже на TCKB статью сбацать.

#114:  Author: HEXFIXLocation: Калининград PostPosted: Wed Apr 29, 2020 23:50
    —
Quote:
Судя по всему, em_SyncDirOpen/em_SyncDirBack не привязаны к Enter/Backspace


Тааааак... а вот тут был непонятный момент. По крайней мере для меня было неочевидно, что клавиши нужно таки привязывать в настройках Very Happy Я почему-то решил, что при включении этого режима TCFS2 сама выполнит эти действия блягодаря длинной строке параметров Very Happy
Ну ОК, клавиши привязал, всё работает. Синхронная смена происходит. Но теперь, у меня этот режим не выключается. Т.е. при одноимённых каталогах в панелях одновременная смена каталогов происходит всегда.

UPD. Разобрался, всё работает! У меня в usercmd.ini в секции [Shortcuts] одна и та же клавиша была повешена на 2 команды em_ScriptE и em_SyncDirOpen

#115:  Author: FlasherLocation: Москва PostPosted: Thu Apr 30, 2020 00:00
    —
Там чуть выше поста настроек я указал на 3-й вариант. С него и пошло обсуждение по всем настройкам.

HEXFIX wrote:
Но теперь, у меня этот режим не выключается.
При повторном нажатии кнопки? Значит, что-то не до конца допилено (в т. ч. по последней ссылке).

HEXFIX wrote:
Разобрался, всё работает!
Ну, и хорошо. Кнопка на панели меняется?
send({ESC}) на tcm(4005) в двух местах заменена?

#116:  Author: HEXFIXLocation: Калининград PostPosted: Thu Apr 30, 2020 00:22
    —
Flasher wrote:
Кнопка на панели меняется?
send({ESC}) на tcm(4005) в двух местах заменена?


Да, кнопка меняется, но с задержкой.
У меня команда один в один, как в примере. В конце send({ESC}). Если заменить на tcm(4005), то работает как-то не так — фокус переводится на панель инструментов.

#117:  Author: FlasherLocation: Москва PostPosted: Thu Apr 30, 2020 00:26
    —
Если кнопок на тулбаре не сильно много, то задержка не должна быть особо ощутимой.
Кто-то вместо 4005 написал 4004. Wink И я писал про 2 места. Кнопки это тоже касается.

#118:  Author: HEXFIXLocation: Калининград PostPosted: Thu Apr 30, 2020 00:42
    —
А! Ну конечно жеж. Опять не то сделал Very Happy
Работает. Единственное, что заметил — состояние кнопки меняется при наведении мыши на панель кнопок. Причём в любом месте

#119:  Author: FlasherLocation: Москва PostPosted: Thu Apr 30, 2020 00:46
    —
Не понял. Если кнопка уже изменена, на какое ещё состояние она может поменяться? Confused

#120:  Author: HEXFIXLocation: Калининград PostPosted: Thu Apr 30, 2020 00:56
    —
Кнопка визуально в состоянии "нажата", навожу мышь на панель кнопок, кнопка меняет состоянии на "не нажата", но сам режим смены работает

#121:  Author: FlasherLocation: Москва PostPosted: Thu Apr 30, 2020 01:25
    —
При чём тут режим? Был же ответ:
HEXFIX wrote:
Да, кнопка меняется, но с задержкой.
Так меняется (без доп. манипуляций) или нет? На x32/x64 разница в поведении есть?
А "нажата" она может быть только в рисованном (в иконке) варианте, а не интерфейсном аля внутренние переключатели ТС.

#122:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Apr 30, 2020 07:16
    —
HEXFIX
Сознательное и планомерное игнорирование точек в конце сообщений является прямым нарушением правил форума, о чём тут говорилось уже многократно.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group