К программистам: Как выполнить "notepad %L"?

Форум о самом популярном файловом менеджере Total Commander

Сообщение SAM » Пт окт 22, 2004 8:43 pm

Весь вопрос, собственно - в заголовке.
Как из моей программы выполнить команду, включающую в себя параметры (ну все те же со знаком <span style='color:purple'>%</span>, что понимает Тотал)
Максимум, чего удалось добиться это:
<span style='color:purple'>SendMessage(hWnd, EM_DISPLAYBAND, CM_LIST, "%L")</span>
И никакой иной проги вместо Lister-a не подсунешь <!--emo&:(-->[img]style_emoticons/<#EMO_DIR#>/sad.gif[/img]<!--endemo-->
А ох как НАДО!
А еще бы лучше, чтоб Тотал в ответ на команду, просто вернул бы мне готовое значение (В этом примере - список выделенных файлов).

Список то (правда, в единственном виде) еще хоть как то можно выцепить через буфер:
<span style='color:purple'>SendMessage(hWnd, EM_DISPLAYBAND, CM_COPYNAMESTOCLIP, 0&)</span>
А как быть со всем остальным <span style='color:purple'>%</span> богатством?

Подскажите люди умные! Которую ночь не сплю...
SAM
Старшина
 
Сообщений: 45
Зарегистрирован: Пн май 24, 2004 5:33 am
Пункты репутации: 0

Сообщение Volniy » Сб окт 23, 2004 1:00 pm

Мне кажется, ты что-то перепутал. Все эти %-аргументы не передаются в качестве параметров, они просто указывают Тоталу на то, что именно он должен (зависит от того, что стоит после знака процента) передать в командную строку.
Вот и ты можешь так-же поступать: заменять %-аргумент на то, чему он должен соответствовать.
И почему Тотал должен возвращать какую-то информацию? Это возможно только, если речь идет о плагине, при использовании специального API.
Ты лучше сформулируй конечную свою задачу, может ее можно решить и по-другому как-то...
Volniy
Ст. лейтенант
 
Сообщений: 121
Зарегистрирован: Сб ноя 22, 2003 11:42 pm
Пункты репутации: 0

Сообщение SAM » Сб окт 23, 2004 3:58 pm

<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Вот и ты можешь так-же поступать: заменять %-аргумент на то, чему он должен соответствовать<!--QuoteEnd--></div><!--QuoteEEnd-->
Можно... но гиморно. Получение, к примеру, %D - целая подпрограмма с тучей мудрежа и сопутствующих глюков <!--emo&:(-->[img]style_emoticons/<#EMO_DIR#>/sad.gif[/img]<!--endemo-->
<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->И почему Тотал должен возвращать какую-то информацию?<!--QuoteEnd--></div><!--QuoteEEnd-->Да не должен конечно. Я лишь надеюсь что это как то возможно.
<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->если речь идет о плагине, при использовании специального API.<!--QuoteEnd--></div><!--QuoteEEnd-->
Вот на это и надеюсь. Может есть какая то скрытая возможность?
<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Ты лучше сформулируй конечную свою задачу, может ее можно решить и по-другому как-то...<!--QuoteEnd--></div><!--QuoteEEnd-->
Задача не только сформулирована, но и уже реализована - <a href='http://www.wincmd.ru/plugring/ChoiceEditor.html' target='_blank'>ChoiceEditor</a>.
Только вот хотелось бы большего...
SAM
Старшина
 
Сообщений: 45
Зарегистрирован: Пн май 24, 2004 5:33 am
Пункты репутации: 0

Сообщение dest » Сб окт 23, 2004 6:31 pm

Чегото я не понял что именно ты хочеш сделать:
1) Заставить делать что-то ТС
2) Просто запустить прогу с нейкими параметрами
Наша работа во тьме -
Мы делаем, что умеем,
Мы отдаем, что имеем,
Наша работа во тьме.
Сомнения стали страстью,
А страсть стала судьбою.
Все остальное - искуство
В безумии быть собой.
dest
Ст. лейтенант
 
Сообщений: 114
Зарегистрирован: Вс май 09, 2004 4:34 am
Пункты репутации: 0

Сообщение SAM » Сб окт 23, 2004 6:54 pm

2dest
Я хочу заставить ТС отработать мой программный запрос и возвратить мне его результат.
Неужели авторы плагинов, для того чтобы узнать (к примеру) сколько выделено файлов на панели, ищут в TTOTAL_CMD пару дочерних окон TMyListBox, производят их анализ, и вытягивают наконец секретную цифру.
Неужели на такие муки обречены все авторы плагинов?
Где же хваленое API ?...
SAM
Старшина
 
Сообщений: 45
Зарегистрирован: Пн май 24, 2004 5:33 am
Пункты репутации: 0

Сообщение Volniy » Сб окт 23, 2004 7:08 pm

<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Где же хваленое API ?...<!--QuoteEnd--></div><!--QuoteEEnd-->
Если сделаешь свою программу плагином, будет тебе и API.
Volniy
Ст. лейтенант
 
Сообщений: 121
Зарегистрирован: Сб ноя 22, 2003 11:42 pm
Пункты репутации: 0

Сообщение dest » Вс окт 24, 2004 8:31 am

<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Я хочу заставить ТС отработать мой программный запрос и возвратить мне его результат.
Неужели авторы плагинов, для того чтобы узнать (к примеру) сколько выделено файлов на панели, ищут в TTOTAL_CMD пару дочерних окон TMyListBox, производят их анализ, и вытягивают наконец секретную цифру.
Неужели на такие муки обречены все авторы плагинов?
Где же хваленое API ?... <!--QuoteEnd--></div><!--QuoteEEnd-->

Когда я писал плагин, то мне тоже хотелось чотобы было что-либо такое.
Но к сожалению такого нету <!--emo&:(-->[img]style_emoticons/<#EMO_DIR#>/sad.gif[/img]<!--endemo-->
А обработка всяких там % не так и сложно реализуется. Могу посоветовать почитать литературу на тему "Написание компиляторов". Там написато как все это делается.
Наша работа во тьме -
Мы делаем, что умеем,
Мы отдаем, что имеем,
Наша работа во тьме.
Сомнения стали страстью,
А страсть стала судьбою.
Все остальное - искуство
В безумии быть собой.
dest
Ст. лейтенант
 
Сообщений: 114
Зарегистрирован: Вс май 09, 2004 4:34 am
Пункты репутации: 0

Сообщение Alextp » Пн окт 25, 2004 10:37 am

2SAM:<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Я хочу заставить ТС отработать мой программный запрос и возвратить мне его результат.
Неужели авторы плагинов, для того чтобы узнать (к примеру) сколько выделено файлов на панели, ищут в TTOTAL_CMD пару дочерних окон TMyListBox, производят их анализ, и вытягивают наконец секретную цифру.<!--QuoteEnd--></div><!--QuoteEEnd-->
Как ты в самом TC делаешь это? Выделяешь неск. файлов, копируешь их имена в буфер (cm_CopyNamesToClip), потом в другой программе вставляешь из буфера... Попробуй сделать то же самое, но снаружи TC, как будто ты - TCScript Editor <!--emo&;)-->[img]style_emoticons/<#EMO_DIR#>/wink.gif[/img]<!--endemo-->

Для твоего примера: Посылаешь cm_CopyNamesToClip, потом смотришь содержимое буфера (сам), подсчитываешь сколько там имен файлов и очищаешь буфер...


Regards,
Последний раз редактировалось Alextp Пн окт 25, 2004 10:46 am, всего редактировалось 1 раз.
Alexey aka Alextp
Alextp
Ст. сержант
 
Сообщений: 44
Зарегистрирован: Сб авг 21, 2004 1:30 pm
Откуда: Москва
Пункты репутации: 0

Сообщение SAM » Вт окт 26, 2004 10:13 am

2alextp
Прочитай внимательно мой первый пост.
Решение далеко не идеально <!--emo&:(-->[img]style_emoticons/<#EMO_DIR#>/sad.gif[/img]<!--endemo-->

2Volniy
Увы, по всей видимости, это не дано и плагину.

2dest
Сложно - несложно... Получить готовый список было бы лучше.
Однако, как вижу - обломилось <!--emo&:(-->[img]style_emoticons/<#EMO_DIR#>/sad.gif[/img]<!--endemo-->
SAM
Старшина
 
Сообщений: 45
Зарегистрирован: Пн май 24, 2004 5:33 am
Пункты репутации: 0

Сообщение Alextp » Вт окт 26, 2004 9:14 pm

2SAM:
<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Прочитай внимательно мой первый пост.
<!--QuoteEnd--></div><!--QuoteEEnd-->
Хм.. Ты же хочешь получить список (%L), ты его через буфер и получил.
Запускаешь Notepad для каждой строки из буфера, это и будет
"notepad %L".

<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->cm_CopySrcPathToClip=2029;Копировать в буфер путь источника
cm_CopyTrgPathToClip=2030;Копировать в буфер путь получателя<!--QuoteEnd--></div><!--QuoteEEnd-->

-это видимо, для получения %P %T.
Для %F - можно послать Shift-F6, Ctrl-Ins, имя будет в буфере.
Это не подходит?


Regards,
Alexey aka Alextp
Alextp
Ст. сержант
 
Сообщений: 44
Зарегистрирован: Сб авг 21, 2004 1:30 pm
Откуда: Москва
Пункты репутации: 0


Вернуться в Total Commander

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

cron