Страница 1 из 1
Как сделать вызов своей программы из TC
Добавлено: Ср авг 27, 2008 22:45
Shasoft
Сначало предистория

Я автор читалки для сотового
Shasoft eBook.
Прикрутил к программе плагины wcx от TC, чтобы можно было из архивов вытаскивать файлы и делать и з них книги.
Потоп прикрутил к программе поиск запущенного TC, чтобы пользователю не приходилось указывать путь к плагинам.
И только потом в голову пришла простая мысль: если на компьютере установлен TC, то пусть он и работает с файлами, а вызов моей программы можно просто прикрутить как плагин к TC.
А теперь собственно вопрос: как бы это поудобнее сделать? Написать плагин (какого типа? а то их тут много разных) или может можно как-то самому добавить вызов в панель инструментов TC?
Хотелось бы при установке своей программы делать поиск TC и если он запущен, то автоматически встаивать в него вызов своей проги.
Подскажите, как это лучше всего сделать? А то сам я TC до этих пор не пользовался.
Заранее спасибо.
Добавлено: Ср авг 27, 2008 23:30
D1P
Не очень понятна идея. Что делает твоя программа? Конвертирует текст в формат для мобилы? Тогда это WCX, можно извратиться и с WLX/WFX, но не с WDX. А если программа работает с параметрами командной строки, то переделывать её в плагин вообще не надо, можно просто сделать кнопку для панели инструментов.
Объясни цель и исходные данные подробнее.
Добавлено: Чт авг 28, 2008 09:26
Shasoft
Исходные данные - файл.
Цель - передать имя файла моей программе. Это можно сделать через командную строку, просто указав имя файла с путем в качестве параметра.
А можно через вызов метода ActiveX моего компонента, передав методу указанный файл.
Добавлено: Чт авг 28, 2008 12:25
Maximus
Удобно было бы рботать в случае, если твоя программа была бы выполнена в виде WCX-плагина.
Конвертирование лучше реализовать как упаковку.
Посмотри
эту статью.
А заливает файлы на телефон пользователь самостоятельно другими средствами?
Добавлено: Чт авг 28, 2008 13:13
D1P
Shasoft писал(а):Цель - передать имя файла моей программе. Это можно сделать через командную строку, просто указав имя файла с путем в качестве параметра.
Никакие плагины тебе не нужны. Вернее, можно реализовать и через плагины, но есть способ проще: сделать кнопку. Скопируй следующий код в буфер обмена, потом нажми ПКМ на свободном месте панели инструментов, в появившемся меню выбери "Вставить".
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).
Добавлено: Чт авг 28, 2008 13:40
Shasoft
А можно ли это сделать програмно? Хотелось бы встроиться в TC при инсталляции своей программы, чтобы пользователя не напрягать.
Добавлено: Чт авг 28, 2008 14:21
Maximus
Можно отредактировать файл DEFAULT.BAR.
Так, например, делает TC Plugins Manager. Правда после этого нужна будет перезагрузка Total Commander.
Или еще можно создать отдельную панель (*.BAR) для твоей программы, а ссылку на нее поместить в основную панель (DEFAULT.BAR).
Добавлено: Чт авг 28, 2008 16:10
Shasoft
Но, как я понимаю при помещении ссылки в основную панель всё равно надо перегружать?
Вобще это не проблема. Я всегда могу инфорировать об этом пользователя, что надо TC перегрузить. Пусть он сам решает.
Главная проблема, как я понимаю, найти, где лежит DEFAULT.BAR
Добавлено: Чт авг 28, 2008 16:24
Maximus
Shasoft писал(а):Главная проблема, как я понимаю, найти, где лежит DEFAULT.BAR
Это да. DEFAULT.BAR находится в папке Total Commander.
Ищешь окно с именем класса TTOTAL_CMD. А там уже как-то с контекстом процесса надо работать.
Или поросить пользователя самостоятельно указать путь к Total Commander.
Добавлено: Чт авг 28, 2008 16:34
Shasoft
Это если запущен TC. А вот если не запущен, то ничего и не найдется.
Хотя, инсталлятор моей программы наверняка запустят из TC, если им пользуются, так что тогда всё нормально.
Добавлено: Чт авг 28, 2008 17:37
Shasoft
В конце пришел к таким выводам: сделать интеграцию в Windows в пп. контекстного меню "Отправить".
Так как TC его тоже использует, то всё будет просто и доступно.
Добавлено: Чт авг 28, 2008 17:39
Worros
Shasoft писал(а):В конце пришел к таким выводам: сделать интеграцию в Windows в пп. контекстного меню "Отправить".
Так как TC его тоже использует, то всё будет просто и доступно.
Соломоново решение. Саппорт \о/
Добавлено: Ср июн 03, 2009 13:50
PalychXX
Мне тоже хотелось бы реализовать запуск чужой программы через архиваторный (или еще какой) плагин для TC. Прога производит изменение переданного в параметрах командной строки файла. Почему не устраивают описанные выше решения - проге можно передать только 1 имя файла, а мне нужно, чтобы плагин поочередно вызывал эту программу для всех выделенных в Коммандере файлов. Если кто-нить сможет подсказать, как это сделать (желательно, на Delphi), буду очень благодарен.
Добавлено: Ср июн 03, 2009 14:21
Tol!k
PalychXX
I. .cmd на кнопке с параметром %L
II. Batya's скрипт
III. multiarc.wcx
Пользуйся поиском, на форуме десятки примеров.
Добавлено: Ср июн 03, 2009 14:59
Lev
IV. executor.wcx
V. MultiLister (former PDF Filter)
VI. TCConv (Total Converter)
+ всякие makebat, wdxinfopacker и т.д. и т.п.
кроме параметра %L в вызовах кнопок обратите внимание ещё и на %S, поддерживающийся начиная с ТС7