Как сделать вызов своей программы из TC
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Написание плагинов для Total Commander

#1: Как сделать вызов своей программы из TC Author: Shasoft PostPosted: Wed Aug 27, 2008 22:45
    —
Сначало предистория Smile
Я автор читалки для сотового Shasoft eBook.
Прикрутил к программе плагины wcx от TC, чтобы можно было из архивов вытаскивать файлы и делать и з них книги.
Потоп прикрутил к программе поиск запущенного TC, чтобы пользователю не приходилось указывать путь к плагинам.
И только потом в голову пришла простая мысль: если на компьютере установлен TC, то пусть он и работает с файлами, а вызов моей программы можно просто прикрутить как плагин к TC.

А теперь собственно вопрос: как бы это поудобнее сделать? Написать плагин (какого типа? а то их тут много разных) или может можно как-то самому добавить вызов в панель инструментов TC?
Хотелось бы при установке своей программы делать поиск TC и если он запущен, то автоматически встаивать в него вызов своей проги.

Подскажите, как это лучше всего сделать? А то сам я TC до этих пор не пользовался.

Заранее спасибо.

#2:  Author: D1PLocation: Тбилиси PostPosted: Wed Aug 27, 2008 23:30
    —
Не очень понятна идея. Что делает твоя программа? Конвертирует текст в формат для мобилы? Тогда это WCX, можно извратиться и с WLX/WFX, но не с WDX. А если программа работает с параметрами командной строки, то переделывать её в плагин вообще не надо, можно просто сделать кнопку для панели инструментов.

Объясни цель и исходные данные подробнее.

#3:  Author: Shasoft PostPosted: Thu Aug 28, 2008 09:26
    —
Исходные данные - файл.
Цель - передать имя файла моей программе. Это можно сделать через командную строку, просто указав имя файла с путем в качестве параметра.
А можно через вызов метода ActiveX моего компонента, передав методу указанный файл.

#4:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Thu Aug 28, 2008 12:25
    —
Удобно было бы рботать в случае, если твоя программа была бы выполнена в виде WCX-плагина.
Конвертирование лучше реализовать как упаковку.
Посмотри эту статью.

А заливает файлы на телефон пользователь самостоятельно другими средствами?

#5:  Author: D1PLocation: Тбилиси PostPosted: Thu Aug 28, 2008 13:13
    —
Shasoft wrote:
Цель - передать имя файла моей программе. Это можно сделать через командную строку, просто указав имя файла с путем в качестве параметра.

Никакие плагины тебе не нужны. Вернее, можно реализовать и через плагины, но есть способ проще: сделать кнопку. Скопируй следующий код в буфер обмена, потом нажми ПКМ на свободном месте панели инструментов, в появившемся меню выбери "Вставить".

Quote:
TOTALCMD#BAR#DATA
c:\some_path\you_program.exe
%p%n
c:\some_path\you_program.exe
Book converter
c:\some_path\

-1


Естественно, пути до твоей проги должны быть правильные.
По нажатию этой кнопки, TC будет вызывать прогу, передавая ей в качестве параметра путь и имя файла под курсором. Если потребуется обработать сразу несколько файлов, то их имена можно передать параметрами %L и %S (подробнее о параметрах можно прочесть в справке TC).

#6:  Author: Shasoft PostPosted: Thu Aug 28, 2008 13:40
    —
А можно ли это сделать програмно? Хотелось бы встроиться в TC при инсталляции своей программы, чтобы пользователя не напрягать.

#7:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Thu Aug 28, 2008 14:21
    —
Можно отредактировать файл DEFAULT.BAR.
Так, например, делает TC Plugins Manager. Правда после этого нужна будет перезагрузка Total Commander.
Или еще можно создать отдельную панель (*.BAR) для твоей программы, а ссылку на нее поместить в основную панель (DEFAULT.BAR).

#8:  Author: Shasoft PostPosted: Thu Aug 28, 2008 16:10
    —
Но, как я понимаю при помещении ссылки в основную панель всё равно надо перегружать?

Вобще это не проблема. Я всегда могу инфорировать об этом пользователя, что надо TC перегрузить. Пусть он сам решает.

Главная проблема, как я понимаю, найти, где лежит DEFAULT.BAR

#9:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Thu Aug 28, 2008 16:24
    —
Shasoft wrote:
Главная проблема, как я понимаю, найти, где лежит DEFAULT.BAR

Это да. DEFAULT.BAR находится в папке Total Commander.
Ищешь окно с именем класса TTOTAL_CMD. А там уже как-то с контекстом процесса надо работать.

Или поросить пользователя самостоятельно указать путь к Total Commander.

#10:  Author: Shasoft PostPosted: Thu Aug 28, 2008 16:34
    —
Это если запущен TC. А вот если не запущен, то ничего и не найдется.

Хотя, инсталлятор моей программы наверняка запустят из TC, если им пользуются, так что тогда всё нормально.

#11:  Author: Shasoft PostPosted: Thu Aug 28, 2008 17:37
    —
В конце пришел к таким выводам: сделать интеграцию в Windows в пп. контекстного меню "Отправить".
Так как TC его тоже использует, то всё будет просто и доступно.

#12:  Author: Worros PostPosted: Thu Aug 28, 2008 17:39
    —
Shasoft wrote:
В конце пришел к таким выводам: сделать интеграцию в Windows в пп. контекстного меню "Отправить".
Так как TC его тоже использует, то всё будет просто и доступно.

Соломоново решение. Саппорт \о/

#13:  Author: PalychXXLocation: Калуга PostPosted: Wed Jun 03, 2009 13:50
    —
Мне тоже хотелось бы реализовать запуск чужой программы через архиваторный (или еще какой) плагин для TC. Прога производит изменение переданного в параметрах командной строки файла. Почему не устраивают описанные выше решения - проге можно передать только 1 имя файла, а мне нужно, чтобы плагин поочередно вызывал эту программу для всех выделенных в Коммандере файлов. Если кто-нить сможет подсказать, как это сделать (желательно, на Delphi), буду очень благодарен.

#14:  Author: Tol!kLocation: Арзамас PostPosted: Wed Jun 03, 2009 14:21
    —
PalychXX
I. .cmd на кнопке с параметром %L
II. Batya's скрипт
III. multiarc.wcx
Пользуйся поиском, на форуме десятки примеров.

#15:  Author: Lev PostPosted: Wed Jun 03, 2009 14:59
    —
IV. executor.wcx
V. MultiLister (former PDF Filter)
VI. TCConv (Total Converter)
+ всякие makebat, wdxinfopacker и т.д. и т.п.

кроме параметра %L в вызовах кнопок обратите внимание ещё и на %S, поддерживающийся начиная с ТС7



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