Страница 7 из 7

Добавлено: Пт июл 26, 2024 12:17
Customscargo
Извините "Как обмениваться кнопками Total Commander?" не обратил внимание на ссылку.
Я в Настройки кнопки панели инструментов, в строке Параметры: ввел - sends=-1??-1||@CRLF!!| marks=0||test<1i!!GLOBALSENDS<1>>
Куда вставить переменную WCMICONS.dll,72 не соображу.
Попробовал запустить (в екселе скопировал пару артикулов Ctrl+C. в ТС открыл папку с картинками, нажал кнопку), прога ругается - Function Not Realised! em_CommandTCIMG888
PauseTcPrm в секции в TCIMG.ini увеличил паузу до 100000 не помогло.

Добавлено: Пт июл 26, 2024 12:47
Orion9
Customscargo

Код: Выделить всё

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\exe\TCIMG\TCIMG.exe
xends=-1??-1 sends=$GLOBALXENDS??-1||@CRLF!!| marks=0||test<1n!!GLOBALSENDS<1>>
WCMICONS.dll,72
Выделить ОБЪЕКТЫ, в именах которых есть фрагменты из списка буфера обмена
Monarch-LFV предоставил вам рабочий код кнопки. Этот код следует выделить, скопировать в буфер и затем вставить на панель инструментов, щелкнув по ней правой кнопкой мыши и выбрав соответствующую команду. Кнопка - рабочая. Выделяете в Excel артикулы, копируете их в буфер обмена и жмете на эту кнопку стоя в каталоге с jpg-файлами. Они должны выделится. Думаю, вам стоит после выделения скопировать файлы сначала во временный каталог, где их и проверить, прежде чем проводить операцию на беловике.

Добавлено: Пт июл 26, 2024 13:08
Customscargo
Все равно ругается - Function Not Realised! em_CommandTCIMG888.
Подумал что файлов много в папке. Оставил 6 файлов, не помогло
Но кнопку "нарисовал" как надо.

Добавлено: Пт июл 26, 2024 13:32
Orion9
Customscargo писал(а):Но кнопку "нарисовал" как надо.
Щелкните по ней правой кнопкой мыши и выбирете пункт "Копировать". Так копируется код кнопки. Откройте блокнот и вставьте полученный код. Совпадает с кодом на форуме?

Добавлено: Ср авг 07, 2024 16:05
Customscargo

Код: Выделить всё

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\exe\TCIMG\TCIMG.exe
xends=-1??-1 sends=$GLOBALXENDS??-1||@CRLF!!| marks=0||test<1n!!GLOBALSENDS<1>>
WCMICONS.dll,72
Выделить ОБЪЕКТЫ, в именах которых есть фрагменты из списка буфера обмена


-1
"-1" появляется. Два раза пробовал.

Добавлено: Ср авг 07, 2024 23:51
Monarch-LFV
Customscargo
Сдается мне, что вы даже не смотрели ссылки, которые я вам давал. Для чего тогда спрашиваете? Это же можно найти самостоятельно. Так и должно быть, просто этой «-1» можно пренебречь (не копировать в код). Она при вставке создастся сама. Вот описание.

Добавлено: Чт авг 08, 2024 11:13
Orion9
Customscargo
Судя по всему, кнопка у вас действительно "нарисовалась" правильно. Но если при её нажатии вы ловите "Function Not Realised! em_CommandTCIMG888", то тут, видимо, надо к автору TCIMG обращаться - наверное, только он сможет вам ответить, что приводит к появлению этой ошибки (у меня, например, всё работает). Это может быть и Windows старая, и Total не той версии, и недоработка в самой утилите TCIMG.

Вашу ошибку можно повторить следующей кнопкой:

Код: Выделить всё

TOTALCMD#BAR#DATA
em_CommandTCIMG888

WCMICONS.dll,55
Ошибка
Но лично мне это ничего не объясняет, лишь наводит на некоторые мысли, озвученные выше.

Вот здесь топик с автором:
https://tc-image.3dn.ru/forum/5-498-1
или
https://forum.ru-board.com/topic.cgi?fo ... ic=50714#1
Можете спросить у него напрямую.

Также советую использовать проверенную сборку, где есть TCIMG, чтобы исключить вопросы по её работоспособности и прочих настроек ТС:
https://forum.ru-board.com/topic.cgi?fo ... pic=3767#1

Добавлено: Чт авг 08, 2024 11:39
Customscargo
Это может быть и Windows старая, и Total не той версии - тоже так думаю, где-то глюки с кодировкой видимо. Наверное стоит поискать готовые решения в виде других программ.

Добавлено: Чт авг 08, 2024 11:55
Monarch-LFV
Customscargo
Здесь описана возникающая ошибка с em_CommandTCIMG888 и даны несколько решений этой проблемы. С задержкой вы выше уже пытались решить проблему, но, так понимаю, ничего не вышло. Другие пути решения смотрели?

Добавлено: Чт авг 08, 2024 13:33
Orion9
Customscargo писал(а):Это может быть и Windows старая, и Total не той версии - тоже так думаю, где-то глюки с кодировкой видимо.
Скорее всего у вас проблема с правами или с ограничением на запись в файл UserCmd.ini (спасибо Monarch-LFV за ссылку). В первом случае достаточно запустить ТС от администратора, во втором - убедитесь, что файл UserCmd.ini у вас создан и не имеет аттрибута "только чтение". Проблема в том, что этот файл может располагаться в разных каталогах, поэтому и советую воспользоваться готовой (желательно портативной) сборкой.
Customscargo писал(а):Наверное стоит поискать готовые решения в виде других программ.
В вашем случе идеальным будет написать макрос (скрипт) в Excel на встроенном языке VBA. У вас очень простая задача. Человек, который в этом разбирается, сделает всё очень быстро. Вот только где вам его найти, такого человека, сказать не могу. Есть же специальные площадки, где делают код на заказ.

Добавлено: Чт авг 08, 2024 19:40
Orion9
Эх, пробило меня сделать для вас скрипт, Customscargo. Вижу, что вам очень хочется иметь такую кнопку, но всё никак не срастается.

Кнопка:

Код: Выделить всё

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\AutoHotkey32.exe"

%COMMANDER_PATH%\AutoHotkey32.exe
Выделить из буфера


-1
Скачайте архив:
https://www.autohotkey.com/download/ahk-v2.zip
Скопируйте из него AutoHotkey32.exe в корень Total Commander. Рядом создайте текстовый файл AutoHotkey32.ahk с содержимым:
[cut]#Requires AutoHotkey v2

FileList := ""

if StrLen(A_Clipboard) = 0
{
MsgBox "Буфер пустой", "Скрипт"
Return
}

clip := A_Clipboard

bf := ""

b:=0
Loop Parse, A_Clipboard, "`n", "`r"
{
if StrLen(Trim(A_LoopField)) > 0
++b
if b < 4
bf .= A_LoopField "`n"
}

i:=0
Loop Files, A_InitialWorkingDir . "\*.*"
{
if CheckFile(A_LoopFileName)
{
FileList .= A_LoopFileName "`n"
++i
}
}

MsgBox "Записей в буфере: " b "`n`n" SubStr(bf, 1, 100) "`nБудет выделено файлов: " i, "Скрипт"

A_Clipboard := FileList

SendMessage(1075, 2033, 0, , "ahk_class TTOTAL_CMD")

Sleep(100)
A_Clipboard := clip

CheckFile(file)
{
Loop Parse, A_Clipboard, "`n", "`r"
{
buff:=Trim(A_LoopField)

if StrLen(buff) > 0 and InStr(file, buff) > 0
Return true
}
Return false
}[/cut]
Сохраните его в UTF-8, иначе могут быть проблемы с русскими символами.

Все. Кнопка готова! :wink: