View previous topic :: View next topic |
Author |
Message |
Aspin
Joined: 21 Feb 2012 Posts: 3
|
(Separately) Posted: Tue Feb 21, 2012 13:03 Post subject: Использование команды cm_decode без запуска тотала |
|
|
Задача заключается в том чтобы выполнить команду cm_decode в идеале без запуска тотала.
Собственно вижу три варианта:
1. использовать функцию напрямую из библиотеки тотала
2. настроить тотал таким образом, чтобы при его запуске выполнялась команда cm_decode после чего бы он автоматически закрывался
3. написать скрипт запускающий тотал, выполняющий в нем необходимые действия и закрывающий его после этого
Третий вариант как самый простой реализован, однако, есть проблемы связанные с тем что при наличии уже открытого тотала скрипт начинает работать в нем, что очень плохо. Скорость и надежность тоже оставляют желать лучшего.
Возможно ли реализовать первый вариант малой кровью?
Можно ли так настроить тотал как во втором варианте и как это сделать? |
|
Back to top |
|
 |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Tue Feb 21, 2012 13:38 Post subject: |
|
|
Aspin
Что мешает запускать новый тотал с ключом "/N"? |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Feb 21, 2012 14:42 Post subject: |
|
|
К сожалению, я вообще не понял, какое отношение имеет к Тоталу то, что нужно без его открытия и, соответственно, реализуется сторонними средствами (утилитами)... |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Tue Feb 21, 2012 17:32 Post subject: |
|
|
А почему никого не смущает то, что команда cm_decode требует, чтобы курсор был установлен на декодируемый файл? При запуске Тотала курсор встает на [..] и вызов cm_decode заведомо даст ошибку. Значит, файл должен быть задан. Как? Абсолютно, или относительно текущего пути? Как осуществлять переход к файлу?
И еще вопрос. Наверняка есть сторонний софт, осуществляющий такое перекодирование. При чем здесь именно функция Тотала, тем более что после выполнения команды он закрывается? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Feb 21, 2012 17:51 Post subject: |
|
|
Вахмурка wrote: | Как? Абсолютно, или относительно текущего пути? Как осуществлять переход к файлу? | Ну, примерно так: totalcmd.exe /N /L=c:\file.b64 /P=L.
Вахмурка wrote: | Наверняка есть сторонний софт, осуществляющий такое перекодирование. | Есть. И я его приводил в довесок к своему скрипту декодирования. Об остальном написал выше. |
|
Back to top |
|
 |
Aspin
Joined: 21 Feb 2012 Posts: 3
|
(Separately) Posted: Tue Feb 21, 2012 21:33 Post subject: |
|
|
Да, мне нужна именно эта функция в тотале и только она.
На счет стороннего софта пишите конкретные названия, а лучше ссылки откуда скачать. Особенно интересно, если есть опыт использования. Если заинтересует, то буду тестировать. Пока есть опыт говорящий о том, что функция в тотале на данный момент обрабатывает материал лучше чем опробованные аналоги в том числе самописные.
Спасибо за ключ для запуска нового экземпляра программы. Изменю скрипт, который как раз запускает, выбирает нужную папку и файл и вызывает функцию.
В ней не хватает только того чтобы окно закрыть и еще не понятно как получить дескриптор именно нового окна.
Скрипт писал на PowerPro, к сожалению полноценного описания найти не удалось поэтому просто переделывал приведенные примеры в кратком мануале и следовательно что было то есть, на полноту претендовать не могу.
Можно ли настроить сам тотал как во втором варианте без PowerPro, т.е. чтобы запускался, делал что надо и закрывался? |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Tue Feb 21, 2012 23:05 Post subject: |
|
|
Quote: | На счет стороннего софта пишите конкретные названия, а лучше ссылки откуда скачать | См. выше пост Flasher'а. Quote: | Скрипт писал на PowerPro | А не скинешь в ЛС код? Посмотрю на досуге. Авось, что и предложу. А может, наоборот, свой опыт обогащу. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Feb 21, 2012 23:43 Post subject: |
|
|
Quote: | На счет стороннего софта пишите конкретные названия, а лучше ссылки откуда скачать |
Для UUE/XXE достаточно имеющегося практически на каждом компе winRAR-a |
|
Back to top |
|
 |
Aspin
Joined: 21 Feb 2012 Posts: 3
|
(Separately) Posted: Wed Feb 22, 2012 00:06 Post subject: |
|
|
Вахмурка, вот тот скрипт:
do("c:\totalcmd\Totalcmd.exe", "/o /l=c:/test /r=c:/testout")
*wait for 200
do("c:\totalcmd\Totalcmd.exe", "/o /l=c:/test /r=c:/testout")
local hwnd=win.handle("c=TTOTAL_CMD")
;Выбираем левую панель
win.sendmessage(hwnd,0x400+51,4001,0)
*wait for 200
*keys {end}
*wait for 50
;Вызываем команду DECODE
win.Postmessage(hwnd,0x400+51,563,0)
*wait for 100
;Жмем энтер в диалоговом окне
*keys {enter}
В папке c:/test должен лежать один файл для работы команды decode.
Два раза подряд вызываю тотал потому что он иногда подтупливал при большом количестве запущенных экземпляров, так стало лучше.
Вейты на случай высокой загрузки системы стоит оставить.
Дескриптор я получаю каким-то странным способом
local hwnd=win.handle("c=TTOTAL_CMD")
никогда с этим не работать не приходилось, но я понял так что он таким образом находит сразу все окна тотала, а выделяем последнее в списке.
Вопрос: как мне получить именно дескриптор нового открывающегося скриптом окна, если я буду использовать ключ /N, т.е. напишу
do("c:\totalcmd\Totalcmd.exe", "/N /o /l=c:/test /r=c:/testout")
Может мне прям эта процедура вернет дексриптор возникающего окна?
Добавлено спустя 8 минут:
Flasher wrote: | Есть. И я его приводил в довесок к своему скрипту декодирования. Об остальном написал выше. |
Я на этом форуме первый день, уже второй, но, к сожалению, не видел этого скрипта. Было бы чудесно получить ссылку на него в личку.
Мне требуется снятие протокола MIME, приблуды (утилиты) способные это сделать в студию. О достойных внимания вы получите подробный отчет и сравнительный анализ на многих миллионах сообщений!  |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Feb 22, 2012 01:00 Post subject: |
|
|
Aspin
В памятке - первая ссылка на топик, в нём - на посл. странице. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Wed Feb 22, 2012 12:02 Post subject: |
|
|
Aspin wrote: | Можно ли настроить сам тотал как во втором варианте без PowerPro, т.е. чтобы запускался, делал что надо и закрывался? | Не подойдёт ли вариант с использованием плагина Autorun? Он позволит при запуске Total Commander (точнее, его дополнительного экземпляра) выполнить команду cm_decode, задать задержку, затем выполнить команду cm_Exit. Единственно, что потребуется дополнительно, это послать нажатие “Enter”, для чего можно использовать простейший скрипт SendEnter.vbs: Code: | '===========================================================
' Посылает нажатие клавиши Enter
'===========================================================
WScript.CreateObject("WScript.Shell").SendKeys "{Enter}"
Wscript.Quit | Соответственно в файле конфигурации плагина Autorun надо записать что-то вроде:
Code: | Sleep 500
SendCommand cm_Decode
ShellExec "%COMMANDER_PATH%\VBS\SendEnter.vbs"
Sleep 1000
SendCommand cm_Exit | Для использования этого варианта можно создать системную ассоциацию для соответствующего типа (типов) файлов примерно такого вида:
Code: | c:\totalcmd\Totalcmd.exe /I=c:\totalcmd\wincmd_test.ini /N /P=L /R=c:/testout /L="%1" | P.S.
1. В основном варианте wincmd.ini ссылки (в разделе [ContentPlugins]) на autorun.wdx либо вовсе не должно быть, либо это должна быть ссылка на копию плагина с другим Autorun.cfg. Иначе основной TC будет открываться и тут же закрываться.
2. Ключ DecodeAutoRename в разделе [Configuration] нужно установить равным 1, чтобы не возникали вопросы с переименованием результирующих файлов в каталоге testout. |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Wed Feb 22, 2012 19:51 Post subject: |
|
|
Quote: | Дескриптор я получаю каким-то странным способом
local hwnd=win.handle("c=TTOTAL_CMD") | Почему странным? Совершенно законный способ. Quote: | Вопрос: как мне получить именно дескриптор нового открывающегося скриптом окна | Навскидку вижу два способа:
1) Получить заголовок окна и выделить оттуда номер текущей копии в квадратных скобках. К сожалению, способ не универсален, потому как этот номер отключается в настройках;
2) Способ длиннее, но универсальнее. Получить список дескрипторов всех окно с классом TTOTAL_CMD. Запустить Тотал и вновь получить список. Он пополнится новым пунктом. Сравнивая два списка, находим этот новый пункт. Это и есть дескриптор нового окна. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|