Руководство по WM_COPYDATA
Select messages from
# through # FAQ
[/[Print]\]

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

#1: Руководство по WM_COPYDATA Author: Dec PostPosted: Mon Nov 03, 2014 13:30
    —
Существует ли в природе полное руководство по командам и параметрам, используемым в сообщении WM_COPYDATA при работе с TC?

#2:  Author: FlasherLocation: Москва PostPosted: Mon Nov 03, 2014 13:43
    —
На англофоруме есть примеры для AHK.

#3:  Author: CaptainFlintLocation: Москва PostPosted: Mon Nov 03, 2014 14:30
    —
Dec
Можно скачать полную историю версий, в ней несколько сжато, но в целом внятно описаны возможности Тотала при работе с этим сообщением.

#4:  Author: Skif_off PostPosted: Mon Nov 03, 2014 15:04
    —
CaptainFlint wrote:
Dec
Можно скачать полную историю версий

А где? На офсайте не нашёл, в HISTORY.TXT только 4е упоминания WM_COPYDATA.

#5:  Author: Dec PostPosted: Mon Nov 03, 2014 15:13
    —
CaptainFlint wrote:
Dec
Можно скачать полную историю версий.

Ссылку не подскажешь?

#6:  Author: CaptainFlintLocation: Москва PostPosted: Mon Nov 03, 2014 15:33
    —
http://wincmd.ru/plugring/FullTCHistory.html

#7:  Author: Dec PostPosted: Mon Nov 03, 2014 15:44
    —
Я нашел следующее:

Quote:
25.11.11 Added: Send WM_COPYDATA with dwData='G'+256*'W': Same as with 'G'+256*'A', but data is returned as UTF-16 Unicode. dwData of return is 'R'+256*'W' (32/64)
25.11.11 Added: Send WM_COPYDATA with dwData='G'+256*'A' and lpData pointing to command to get back WM_COPYDATA with various info. Supported commands A: Active side (returns L or R), or two byte command: first byte: L=left, R=right, S=source, T=target. Second byte: P=current path, C=list count, I=caret index, N=name of file under caret. dwData of return is 'R'+256*'A' (32/64)

09.12.07 Added: Unicode support in WM_COPYDATA: prepend UTF8 byte order marker before each path containing Unicode characters (pure ANSI paths are passed as ANSI) -> /O switch now supports Unicode too

17.09.06 Added: Send WM_COPYDATA with dwData='E'+256*'M' and lpData pointing to em_xyz internal command (0-terminated) to execute that command. Accepts parameters separated by a space

12.04.06 Added: Support for environment variables in paths received via WM_COPYDATA from other programs


Т.е. по сути есть только 3 "команды": GW, GA и EM. Я правильно понимаю?

#8:  Author: CaptainFlintLocation: Москва PostPosted: Mon Nov 03, 2014 17:25
    —
Dec
Странно, мне казалось, там все команды описаны. В общем, есть ещё CD для перехода в другой каталог на одной или обеих панелях. Строка lpData должна быть в следующем формате (пример для языка C/C++):
Quote:
"c:\\test1\x0dc:\\test2\x00ST\x00"

Первый путь — левая панель, второй — правая; любой из них может быть опущен (но симмвол-разделитель \x0d должен оставаться). Флаги после первого нулевого символа опциональны. "S": трактовать пути как исходный/целевой; "T": открывать пути в новых вкладках.

#9:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Nov 04, 2014 17:01
    —
Flasher wrote:
На англофоруме есть примеры для AHK.

Там не только для AHK примеры. Wink
Но топик является наиболее подробным обсуждением сообщений, посылаемых через WM_COPYDATA, есть примеры реализации на разных языках, в том числе для команды CD.

#10:  Author: FlasherLocation: Москва PostPosted: Tue Nov 04, 2014 17:10
    —
MVV wrote:
Там не только для AHK примеры. Wink
Да я уже видел, не стал акцентировать. Dec не вчера "родился", чтобы самостоятельно оценить. Wink

#11:  Author: Skif_off PostPosted: Tue Dec 02, 2014 20:20
    —
CD поддерживает юникод? Или только ANSI?

#12:  Author: FlasherLocation: Москва PostPosted: Tue Dec 02, 2014 20:26
    —
Поддерживает.

#13:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 02, 2014 20:42
    —
Skif_off,
Поддерживает UTF-8. Синтаксис можно посмотреть тут.

#14:  Author: Skif_off PostPosted: Tue Dec 02, 2014 21:10
    —
MVV
Смущает вот это
Quote:
09.12.07 Added: Unicode support in WM_COPYDATA: prepend UTF8 byte order marker before each path containing Unicode characters (pure ANSI paths are passed as ANSI)

Маркер? Т.е. просто всегда дописывать \xEF\xBB\xBF перед каждым путём?
Если нет, например, пути для левой панели, тогда так
Code:
["\xEF\xBB\xBF"] "\x0D" ["\xEF\xBB\xBF"] ["<right_path>"] "\x00" ["S"] ["T"] "\x00"

?
В случае отсутствия флагов S/T, команда должна заканчиваться двумя \x00?

Надо ещё разобраться с \x00: на AutoIt, кажется, не добавлял в конце, но работало.

#15:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Dec 02, 2014 22:11
    —
Quote:
Маркер? Т.е. просто всегда дописывать \xEF\xBB\xBF перед каждым путём?

Да. Перед левым и перед правым свои маркеры, указывающие, что конкретно этот путь в UTF-8. На схеме показаны оба, и оба необязательные.
Quote:
Если нет, например, пути для левой панели, тогда так?

Если нет пути для какой-то панели, то и её маркер не нужен. Не знаю, что будет, если маркер будет, а пути не будет, хотя по логике он тогда должен игнорироваться, т.к. путь все равно пуст. Главное, чтобы в команде были символ конца строки и два нулевых байта.
Quote:
В случае отсутствия флагов S/T, команда должна заканчиваться двумя \x00?

Да, все элементы в квадратных скобках можно выкидывать, остальное писать надо.
Не забудь в поле размера данных учесть эти два нулевых байта, чтобы они корректно переслались тоталу.

#16:  Author: Skif_off PostPosted: Wed Dec 03, 2014 00:54
    —
MVV
Спасибо, буду пробовать, как доберусь до компа. Кстати, в примерах AutoHotkey после флагов нулевой символ не ставят, в функции на AutoIt тоже, кажется, не стал.
Вообще, производит впечатление своеобразного костыля для совместимости с неюникодными Win9x/Me: откуда я могу знать, какой путь попадётся? Проверять каждый раз, что символы строки не вылезли за диапазон 0-127 не очень удобно.

#17:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Dec 03, 2014 15:20
    —
Если конкатенируешь строки, обычно в конце нулевой символ добавляется автоматически. Но однозначно будет не лишним его указать явно, тем более, его необходимо учитывать в длине строки, а завершающий нулевой обычно не включается в длины строк.
А где костыль? Посылай всегда в UTF-8. Функция эта в тотале появилась давно, юникодные пути тогда еще не были в моде, потом была добавлена поддержка юникода с сохранением совместимости.

#18:  Author: LonerDLocation: Донецк PostPosted: Wed Apr 22, 2015 03:42
    —
Flasher wrote:
На англофоруме есть примеры для AHK.

Подозреваю, что тут ответ можно получить быстрее и понятней, потому повторю свой вопрос.
Как эту конструкцию использовать внутри своих скриптов?
Например, надо нам узнать Source Path (SP) и передать его какой-то переменной.
Что-то наподобие вот этого
MyVariable := Send_WM_COPYDATA(cmd:="SP")

И ещё - если тут кто-то из AHK-шников заглянет - каким образом команда CD работает? Потому как объяснения Balderstrom весьма туманны.

#19:  Author: FlasherLocation: Москва PostPosted: Wed Apr 22, 2015 11:38
    —
Там уже вроде как что-то отписали, но больше невнятицы про errorlevel.
Вот этот скрипт я попробовал на 1.1.05.02, gui возвращает данные. Теперь бы ещё по-отдельности отобразить, только с иероглифами первого значения получилось...

#20:  Author: Skif_off PostPosted: Wed Apr 22, 2015 14:43
    —
У меня с 1.1.21.03 ничего не показывает, активную панель скрипт показал только после изменения
Code:
inf:=Asc("G") + 256 * Asc("A")
;на
inf:=Asc("G") + 256 * Asc("W")

С 1.1.05.02 вообще ничего.

#21:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Apr 22, 2015 14:45
    —
Skif_off,
Видимо, твоя версия AHK юникодная, поэтому и идентификатор сообщения нужно указывать юникодный.

#22:  Author: Skif_off PostPosted: Wed Apr 22, 2015 15:47
    —
MVV
Точно, проглядел
Quote:
I used autohotkey_L ansi version 1.1.05.01

Юникод рулит, однако. На AutoIt сразу делал с юникодом.

#23:  Author: LonerDLocation: Донецк PostPosted: Wed Apr 22, 2015 15:48
    —
Flasher wrote:
Там уже вроде как что-то отписали, но больше невнятицы про errorlevel.

Вроде как низзя без перехватчика OnMessage... а как его прервать после получения сообщения - вопрос.
По нажатию хоткея выполняется Send_WM_COPYDATA - формируется запрос Тоталу с заданным параметром.
Далее этот запрос обрабатывается, получается какая-то фигня - строка (иероглиф) CopyDataStruct и этот запрос отправляется Тоталу.
Тотал даёт некий ответ, и висящий в трее AHK отслеживает появление ответа через OnMessage, обрабатывает в Receive_WM_COPYDATA и высвечивает результат...
Как всё это упростить - непонятно.



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

Ага. Индусский код начинает вырисовываться.
Убираем #Persistent чтобы скрипт не висел постоянно в памяти, убираем горячие клавиши.
Убираем MsgBox, %retVal% и в начале функции Receive_WM_COPYDATA пишем global retVal (назначаем переменную глобальной, то есть результат отправляется в глобальную переменную, которая будет доступна вне скрипта).

Тогда тело скрипта будет выглядет так
Code:
  OnMessage(0x4a, "Receive_WM_COPYDATA")
  Send_WM_COPYDATA(cmd:="A")
; в переменной retVal - желаемое значение, делаем что хотим с этим значением, и в конце концов завершаем скрипт обязательно через ExitApp
ExitApp


Можно ли ещё проще?
И зачем совет "must have a wait loop arround onMessage in order to receive data from TC"? Ведь если запустить OnMessage внутри цикла, он продолжает висеть в памяти даже после прерывания цикла...
Как прервать OnMessage? Можно ли и нужно ли это делать?

#24:  Author: FlasherLocation: Москва PostPosted: Wed Apr 22, 2015 17:12
    —
LonerD wrote:
Тогда тело скрипта будет выглядет так
А какого скрипта не хочешь рассказать? Smile
LonerD wrote:
Можно ли ещё проще?
Тут про функции нужно думать, там основной код.
LonerD wrote:
Можно ли и нужно ли это делать?
Думаю, нет необходимости.

#25:  Author: LonerDLocation: Донецк PostPosted: Wed Apr 22, 2015 17:20
    —
Flasher wrote:
LonerD wrote:
Тогда тело скрипта будет выглядет так
А какого скрипта не хочешь рассказать? Smile

Я выше в теме указал - вот этот скрипт. Насколько я понимаю, он и есть финальный. Его всё время и пытаюсь "осмыслить" и адаптировать для своих потребностей.


Last edited by LonerD on Wed Apr 22, 2015 18:29; edited 1 time in total

#26:  Author: FlasherLocation: Москва PostPosted: Wed Apr 22, 2015 17:30
    —
LonerD
Финальный? Это просто вариант. Предыдущый как-то покомпактней смотрится. А тут какие-то навороты отладочные, ну их. Нужно скомпоновать самый наипростейший и компактный вариант с записью в переменную и msgbox для одного значения. В данном случае SС больше всего интересует.

#27:  Author: LonerDLocation: Донецк PostPosted: Wed Apr 22, 2015 19:41
    —
Flasher wrote:
Предыдущый как-то покомпактней смотрится. А тут какие-то навороты отладочные, ну их. Нужно скомпоновать самый наипростейший и компактный вариант с записью в переменную и msgbox для одного значения. В данном случае SС больше всего интересует.

Предыдущий - это вот этот имеешь в виду?
Не очень-то и компактно, если принять во внимание, что разные команды нужно отсылать - посмотри вначале скрипта конструкцию if A_IsUnicode ... else и доп. функцию StrPutVar

Flasher wrote:
А тут какие-то навороты отладочные, ну их.

Что ты подразумеваешь под отладочными наворотами? Защиту от дурака можно просто убрать (или переделать по-своему).
Для меня туманным остаётся смысл проверки if( A_IsUnicode ). На первый взгляд все AutoHotkey.exe-шники работает и без неё.

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

В общем, получился вот такой примерчик. Переключение панелей - определяем активную панель, и переходим на другую.
Основная суть достигнута - получено значение retVal использовано дальше в скрипте.

Code:
; #Warn
#NoEnv
#NoTrayIcon
#SingleInstance, Force
;SetBatchLInes, -1
;SendMode, Input

If WinExist("ahk_class TTOTAL_CMD") && WinActive("ahk_class TTOTAL_CMD")
{
  WinGet, TCHWND, ID, A

  OnMessage(0x4a, "Receive_WM_COPYDATA")  ; 0x4a is WM_COPYDATA
  Send_WM_COPYDATA(cmd:="A")

  if ( retVal = "R" )
    SendMessage, 1075, 4001,,, % "ahk_id " TCHWND
    else
      SendMessage, 1075, 4002,,, % "ahk_id " TCHWND
}
ExitApp

Send_WM_COPYDATA(ByRef cmd, aWinID=0x0)
{
  global TCHWND
  Critical
  if(!RegExMatch(cmd, "^(A|[LRST][PCIN]?)$"))
    return

  len:=StrLen(cmd) + 1
  if( A_IsUnicode )   ; This needs to be done, as TC is expecting
  {      ; "chars" for the cmd string.
     cmdStr:=cmd
     VarSetCapacity(cmd, StrPut(cmd, "cp0"))
     Loop, % len
        NumPut( Asc(SubStr(cmdStr, A_Index, 1)), cmd, A_Index - 1, "Char")
  }
  VarSetCapacity(CopyDataStruct, A_PtrSize * 3)
  NumPut(Asc("G") + 256 * Asc(A_IsUnicode ? "W" : "A"), CopyDataStruct)
  NumPut(len , CopyDataStruct, A_PtrSize)
  NumPut(&cmd, CopyDataStruct, A_PtrSize * 2)

  SendMessage, 0x4A, %A_ScriptHwnd%, &CopyDataStruct, , % "ahk_id " TCHWND
  return ErrorLevel
}

Receive_WM_COPYDATA(wParam, lParam, msg, hwnd)
{
  global retVal
  retVal:=StrGet(NumGet(lParam + A_PtrSize * 2))
  return 1
}


Last edited by LonerD on Thu Apr 23, 2015 15:28; edited 1 time in total

#28:  Author: FlasherLocation: Москва PostPosted: Thu Apr 23, 2015 06:19
    —
LonerD wrote:
Предыдущий - это вот этот имеешь в виду?
Его.
LonerD wrote:
Не очень-то и компактно
У тебя получилось компактней? Что-то не заметил. Smile
LonerD wrote:
Основная суть достигнута - получено значение retVal использовано дальше в скрипте.
А я как просил? Для SC, SI или SN (типа Send_WM_COPYDATA("SC") | msgbox retVal).

#29:  Author: LonerDLocation: Донецк PostPosted: Thu Apr 23, 2015 15:27
    —
Flasher wrote:
У тебя получилось компактней?

Да, примерно на 8 строк.
Чтобы ещё сократить - в моём варианте можно убрать безболезненно "защиту от дурака"
Code:
  if(!RegExMatch(cmd, "^(A|[LRST][PCIN]?)$"))
     return

Хотя сейчас посмотрел - почерпнул из того скрипта переменную A_ScriptHwnd, исправил свой скрипт.

Flasher wrote:
А я как просил? Для SC, SI или SN (типа Send_WM_COPYDATA("SC") | msgbox retVal).

Заменить
Send_WM_COPYDATA(cmd:="A")
на желаемое, например
Send_WM_COPYDATA(cmd:="SC").
Входные данные - ByRef, потому не ("SC"), а (cmd:="SC")

Также заменить
if ( retVal = "R" ) и три строки ниже на
msgbox, % retVal

#30:  Author: FlasherLocation: Москва PostPosted: Thu Apr 23, 2015 17:18
    —
LonerD wrote:
if ( retVal = "R" ) и три строки ниже на
msgbox, % retVal
Хм. Сравнение без %, а вывод с? Как интересно.

#31:  Author: LonerDLocation: Донецк PostPosted: Thu Apr 23, 2015 18:17
    —
Flasher wrote:
Хм. Сравнение без %, а вывод с?

В выражениях имена переменных не обрамляются знаками процента. Исключением являются массивы и другие структуры с двойной отсылкой. В результате, чтобы в выражениях различать переменные и буквальные строки, последние необходимо заключать в двойные кавычки.
А в msgbox переменные только с процентами нужно записывать, иначе это считается за текст.
В любом случае можно обрамить с обоих сторон знаком % (старый способ) или поставить один знак %, затем пробел и переменную (а параметры %1%, %2% и т.д. вроде обязательно двумя % надо обрамлять)
Равноценные записи:
MsgBox, % retVal
MsgBox, %retVal%
В синтаксисе много неочевидных вещей, сокращений (например, после MsgBox в предыдущем примере запятые можно опустить)... Частично это пытаются исправить в AHK 2.0, которая уже несколько лет всё ещё на стадии альфы.


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

Just another working AHK script - скромно охарактеризовал автор свой скрипт.
Он хоть и на пять строк длиннее (если это суть важно), зато всё-в-одном - и данные получать (причём сразу можно их в желаемую переменную пихать), и пользовательские команды выполнять, и команду CD выполнять.

#32:  Author: FlasherLocation: Москва PostPosted: Fri Apr 24, 2015 02:55
    —
LonerD
В общем, суть ясна. Забытое вернуть можно лишь подсказкой и практикой.
SN на твоём месте я бы не стал трогать. Слишком много кода, когда есть параметр.
Остаётся пока вопрос - как заполучить список (в т.ч. выделенный) без буфера?

#33:  Author: LonerDLocation: Донецк PostPosted: Fri Apr 24, 2015 04:27
    —
Flasher wrote:
Остаётся пока вопрос - как заполучить список (в т.ч. выделенный) без буфера?

Я не знаю даже как это сделать с буфером... Именно выделенные файлы.
Flasher wrote:
я ... использую механизм Хелпера, там он берёт только выделенное.

А вот интересно - как Хелпер берёт только выделенное, как в нём работает GetSrcSelectedFiles, какие механизмы задействует... Возможно, их можно было бы и без усилий переложить на Autohotkey. Только вот исходников Хелпера не выложено...

#34:  Author: FlasherLocation: Москва PostPosted: Fri Apr 24, 2015 05:23
    —
LonerD wrote:
Я не знаю даже как это сделать с буфером... Именно выделенные файлы.
Там не выделенные, а выбранные. А как не трогать под курсором - уже не тут.
LonerD wrote:
Только вот исходников Хелпера не выложено.
И что? Ты бы многое почерпнул? Smile
Меня же больше интересует отображаемый список.

#35:  Author: FlasherLocation: Москва PostPosted: Sun Nov 22, 2015 12:32
    —
Нашёлся один баг. В "Сеть/FS-плагины" число элементов возвращает на один больше.
Есть кому сообщить?


Last edited by Flasher on Mon Nov 23, 2015 10:28; edited 1 time in total

#36:  Author: Skif_off PostPosted: Mon Nov 23, 2015 00:34
    —
Flasher
Win7x64, обе разрядности ТС, AutoIt 3.3.8.1, 3.3.12.0 и 3.3.14.2: не подтверждаю.
WinXP SP3, WinPE на базе WinXP SP2 аналогично без проблем.
Отправляю "SC", "TC", "LC", "RC".

#37:  Author: FlasherLocation: Москва PostPosted: Mon Nov 23, 2015 10:04
    —
Отбой. Я не обратил внимания, что <Обновить>.<lnk> - это файл, а смотрел только на число папок.

#38:  Author: FlasherLocation: Москва PostPosted: Thu Dec 28, 2017 02:18
    —
CD в отличии от стандартной команды не входит в папки архива при нахождении в нём. Например, установим курсор на C:\Test.zip\Folder.
Code:
│ Команда │       Параметры       │ Результат │
│—————————————————————————————————————————————│
│ cd      │ %V%Z                  │     +     │
│ TCFS2   │ /ef "tcd(`%V%Z\`,,S)" │     -     │
Кто сообщит?

#39:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Jan 12, 2018 14:53
    —
А разве в CD в принципе поддерживаются %-параметры вне панели инструментов и EM-команд? Если надо, можно юзер-команду сделать с %-параметрами и дергать из TCFS2...

#40:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Jan 12, 2018 14:59
    —
MVV
Как минимум, в меню "Запуск" должны поддерживаться. И (при некотором умении, если указывать не через стандартный диалог TC) в меню избранных каталогов.

#41:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Jan 12, 2018 16:00
    —
Согласен, мест, где %-параметры поддерживаются, больше, чем я указал, однако основная мысль была о том, что нельзя просто так взять и использовать %-параметры в командной строке тотала или в команде CD, выполняемой через WM_COPYDATA.

#42:  Author: FlasherLocation: Москва PostPosted: Fri Jan 12, 2018 20:50
    —
MVV
Столбец "Параметры" подразумевает одноимённое поле в настройке кнопки/юзеркоманды. %-ы никакого отношения к делу не имеют. Это проверочные данные для воспроизведения.

#43:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Jan 12, 2018 22:16
    —
А, так понятнее.

Надо сказать, что из комстроки тотала команда входит в папку в архиве по полному пути, только если мы находимся где-то внутри архива:
Code:
cd D:\test.zip\Folder\

Аналогично с кнопкой панели инструментов (присутствие %Z в данном случае ничего не решает):
Code:
cd
D:\test.zip\Folder


Т.е. комстроку тоже надо корректировать? А вход в архив через аргументы тотала работает?

#44:  Author: FlasherLocation: Москва PostPosted: Fri Jan 12, 2018 22:21
    —
MVV wrote:
только если мы находимся где-то внутри архива:
А я так и написал:
Flasher wrote:
при нахождении в нём

MVV wrote:
присутствие %Z в данном случае ничего не решает
%Z, как известно, нужен исключительно при наличии других переменных параметров ТС. В моём случае это %V.
MVV wrote:
Т.е. комстроку тоже надо корректировать?
Суть не в том, на какой строке параметры. Суть в самом поведении.
MVV wrote:
А вход в архив через аргументы тотала работает?
В корень? А почему нет-то? Конечно.

#45:  Author: FlasherLocation: Москва PostPosted: Wed Jan 17, 2018 22:53
    —
MVV
Спасибо за запрос. Но зачем ты пишешь 'doesn't' про команду cd, ведь сам выше подтвердил, что она работает при открытом отображении заданной папки Question

#46:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Jan 17, 2018 23:17
    —
Потому что в основном не работает, а редкие исключения тут не столь важны, как мне кажется.

#47:  Author: FlasherLocation: Москва PostPosted: Wed Jan 17, 2018 23:34
    —
Но мой посыл был в том, чтобы уровнять возможность.
Вдруг твой запрос окажется отвергнут из-за проблем с чтением глубины архива.
Да и в любом случае стоит упомянуть об этом исключении.

#48:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jan 18, 2018 13:01
    —
На это уже обратили внимание в комментариях)

#49:  Author: FlasherLocation: Москва PostPosted: Thu Jan 18, 2018 13:06
    —
Внимание обратили на то, что могут быть проблемы, а не на то, что стоит уравнять возможности, чего я хочу добиться.

#50:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jan 18, 2018 14:54
    —
Запрос не об уравнивании возможностей, а вообще о реализации такой возможности в принципе. Мне кажется, это более эффективно на оффоруме.

#51:  Author: FlasherLocation: Москва PostPosted: Thu Jan 18, 2018 15:02
    —
Мой-то запрос был как раз в этом. Мне это понадобилось при нахождении внутри архива.
А откуда взяться эффективности при молчаливом согласии с критикой? Просьба хотя бы обозначить более лёгкий путь, т. е. сделать хотя бы так, как это работает на данный момент с обычной командой.

#52:  Author: FlasherLocation: Москва PostPosted: Fri May 04, 2018 03:49
    —
MVV
Гислер не исправил. Sad Зато какой-то бессмысленный ключ IgnoreDirErrors в конфиг впихнул. Вроде путь в заголовке есть, а дальше делать с этим и нечего.



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