View previous topic :: View next topic |
Author |
Message |
Shasoft
Joined: 25 Aug 2008 Posts: 6
|
(Separately) Posted: Wed Aug 27, 2008 22:45 Post subject: Как сделать вызов своей программы из TC |
|
|
Сначало предистория
Я автор читалки для сотового Shasoft eBook.
Прикрутил к программе плагины wcx от TC, чтобы можно было из архивов вытаскивать файлы и делать и з них книги.
Потоп прикрутил к программе поиск запущенного TC, чтобы пользователю не приходилось указывать путь к плагинам.
И только потом в голову пришла простая мысль: если на компьютере установлен TC, то пусть он и работает с файлами, а вызов моей программы можно просто прикрутить как плагин к TC.
А теперь собственно вопрос: как бы это поудобнее сделать? Написать плагин (какого типа? а то их тут много разных) или может можно как-то самому добавить вызов в панель инструментов TC?
Хотелось бы при установке своей программы делать поиск TC и если он запущен, то автоматически встаивать в него вызов своей проги.
Подскажите, как это лучше всего сделать? А то сам я TC до этих пор не пользовался.
Заранее спасибо. |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Wed Aug 27, 2008 23:30 Post subject: |
|
|
Не очень понятна идея. Что делает твоя программа? Конвертирует текст в формат для мобилы? Тогда это WCX, можно извратиться и с WLX/WFX, но не с WDX. А если программа работает с параметрами командной строки, то переделывать её в плагин вообще не надо, можно просто сделать кнопку для панели инструментов.
Объясни цель и исходные данные подробнее. _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
|
Shasoft
Joined: 25 Aug 2008 Posts: 6
|
(Separately) Posted: Thu Aug 28, 2008 09:26 Post subject: |
|
|
Исходные данные - файл.
Цель - передать имя файла моей программе. Это можно сделать через командную строку, просто указав имя файла с путем в качестве параметра.
А можно через вызов метода ActiveX моего компонента, передав методу указанный файл. |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Thu Aug 28, 2008 12:25 Post subject: |
|
|
Удобно было бы рботать в случае, если твоя программа была бы выполнена в виде WCX-плагина.
Конвертирование лучше реализовать как упаковку.
Посмотри эту статью.
А заливает файлы на телефон пользователь самостоятельно другими средствами? _________________ tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Thu Aug 28, 2008 13:13 Post subject: |
|
|
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). _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
|
Shasoft
Joined: 25 Aug 2008 Posts: 6
|
(Separately) Posted: Thu Aug 28, 2008 13:40 Post subject: |
|
|
А можно ли это сделать програмно? Хотелось бы встроиться в TC при инсталляции своей программы, чтобы пользователя не напрягать. |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Thu Aug 28, 2008 14:21 Post subject: |
|
|
Можно отредактировать файл DEFAULT.BAR.
Так, например, делает TC Plugins Manager. Правда после этого нужна будет перезагрузка Total Commander.
Или еще можно создать отдельную панель (*.BAR) для твоей программы, а ссылку на нее поместить в основную панель (DEFAULT.BAR). _________________ tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar |
|
Back to top |
|
|
Shasoft
Joined: 25 Aug 2008 Posts: 6
|
(Separately) Posted: Thu Aug 28, 2008 16:10 Post subject: |
|
|
Но, как я понимаю при помещении ссылки в основную панель всё равно надо перегружать?
Вобще это не проблема. Я всегда могу инфорировать об этом пользователя, что надо TC перегрузить. Пусть он сам решает.
Главная проблема, как я понимаю, найти, где лежит DEFAULT.BAR |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Thu Aug 28, 2008 16:24 Post subject: |
|
|
Shasoft wrote: | Главная проблема, как я понимаю, найти, где лежит DEFAULT.BAR |
Это да. DEFAULT.BAR находится в папке Total Commander.
Ищешь окно с именем класса TTOTAL_CMD. А там уже как-то с контекстом процесса надо работать.
Или поросить пользователя самостоятельно указать путь к Total Commander. _________________ tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar |
|
Back to top |
|
|
Shasoft
Joined: 25 Aug 2008 Posts: 6
|
(Separately) Posted: Thu Aug 28, 2008 16:34 Post subject: |
|
|
Это если запущен TC. А вот если не запущен, то ничего и не найдется.
Хотя, инсталлятор моей программы наверняка запустят из TC, если им пользуются, так что тогда всё нормально. |
|
Back to top |
|
|
Shasoft
Joined: 25 Aug 2008 Posts: 6
|
(Separately) Posted: Thu Aug 28, 2008 17:37 Post subject: |
|
|
В конце пришел к таким выводам: сделать интеграцию в Windows в пп. контекстного меню "Отправить".
Так как TC его тоже использует, то всё будет просто и доступно. |
|
Back to top |
|
|
Worros
Joined: 19 Jan 2007 Posts: 1123
|
(Separately) Posted: Thu Aug 28, 2008 17:39 Post subject: |
|
|
Shasoft wrote: | В конце пришел к таким выводам: сделать интеграцию в Windows в пп. контекстного меню "Отправить".
Так как TC его тоже использует, то всё будет просто и доступно. |
Соломоново решение. Саппорт \о/ |
|
Back to top |
|
|
PalychXX
Joined: 03 Jun 2009 Posts: 1 Location: Калуга
|
(Separately) Posted: Wed Jun 03, 2009 13:50 Post subject: |
|
|
Мне тоже хотелось бы реализовать запуск чужой программы через архиваторный (или еще какой) плагин для TC. Прога производит изменение переданного в параметрах командной строки файла. Почему не устраивают описанные выше решения - проге можно передать только 1 имя файла, а мне нужно, чтобы плагин поочередно вызывал эту программу для всех выделенных в Коммандере файлов. Если кто-нить сможет подсказать, как это сделать (желательно, на Delphi), буду очень благодарен. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Jun 03, 2009 14:21 Post subject: |
|
|
PalychXX
I. .cmd на кнопке с параметром %L
II. Batya's скрипт
III. multiarc.wcx
Пользуйся поиском, на форуме десятки примеров. |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Wed Jun 03, 2009 14:59 Post subject: |
|
|
IV. executor.wcx
V. MultiLister (former PDF Filter)
VI. TCConv (Total Converter)
+ всякие makebat, wdxinfopacker и т.д. и т.п.
кроме параметра %L в вызовах кнопок обратите внимание ещё и на %S, поддерживающийся начиная с ТС7 |
|
Back to top |
|
|
|