Использование команды cm_decode без запуска тотала
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Использование команды cm_decode без запуска тотала
Задача заключается в том чтобы выполнить команду cm_decode в идеале без запуска тотала.
Собственно вижу три варианта:
1. использовать функцию напрямую из библиотеки тотала
2. настроить тотал таким образом, чтобы при его запуске выполнялась команда cm_decode после чего бы он автоматически закрывался
3. написать скрипт запускающий тотал, выполняющий в нем необходимые действия и закрывающий его после этого
Третий вариант как самый простой реализован, однако, есть проблемы связанные с тем что при наличии уже открытого тотала скрипт начинает работать в нем, что очень плохо. Скорость и надежность тоже оставляют желать лучшего.
Возможно ли реализовать первый вариант малой кровью?
Можно ли так настроить тотал как во втором варианте и как это сделать?
Собственно вижу три варианта:
1. использовать функцию напрямую из библиотеки тотала
2. настроить тотал таким образом, чтобы при его запуске выполнялась команда cm_decode после чего бы он автоматически закрывался
3. написать скрипт запускающий тотал, выполняющий в нем необходимые действия и закрывающий его после этого
Третий вариант как самый простой реализован, однако, есть проблемы связанные с тем что при наличии уже открытого тотала скрипт начинает работать в нем, что очень плохо. Скорость и надежность тоже оставляют желать лучшего.
Возможно ли реализовать первый вариант малой кровью?
Можно ли так настроить тотал как во втором варианте и как это сделать?
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
А почему никого не смущает то, что команда cm_decode требует, чтобы курсор был установлен на декодируемый файл? При запуске Тотала курсор встает на [..] и вызов cm_decode заведомо даст ошибку. Значит, файл должен быть задан. Как? Абсолютно, или относительно текущего пути? Как осуществлять переход к файлу?
И еще вопрос. Наверняка есть сторонний софт, осуществляющий такое перекодирование. При чем здесь именно функция Тотала, тем более что после выполнения команды он закрывается?
И еще вопрос. Наверняка есть сторонний софт, осуществляющий такое перекодирование. При чем здесь именно функция Тотала, тем более что после выполнения команды он закрывается?
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Ну, примерно так: totalcmd.exe /N /L=c:\file.b64 /P=L.Вахмурка писал(а):Как? Абсолютно, или относительно текущего пути? Как осуществлять переход к файлу?
Есть. И я его приводил в довесок к своему скрипту декодирования. Об остальном написал выше.Вахмурка писал(а):Наверняка есть сторонний софт, осуществляющий такое перекодирование.
Да, мне нужна именно эта функция в тотале и только она.
На счет стороннего софта пишите конкретные названия, а лучше ссылки откуда скачать. Особенно интересно, если есть опыт использования. Если заинтересует, то буду тестировать. Пока есть опыт говорящий о том, что функция в тотале на данный момент обрабатывает материал лучше чем опробованные аналоги в том числе самописные.
Спасибо за ключ для запуска нового экземпляра программы. Изменю скрипт, который как раз запускает, выбирает нужную папку и файл и вызывает функцию.
В ней не хватает только того чтобы окно закрыть и еще не понятно как получить дескриптор именно нового окна.
Скрипт писал на PowerPro, к сожалению полноценного описания найти не удалось поэтому просто переделывал приведенные примеры в кратком мануале и следовательно что было то есть, на полноту претендовать не могу.
Можно ли настроить сам тотал как во втором варианте без PowerPro, т.е. чтобы запускался, делал что надо и закрывался?
На счет стороннего софта пишите конкретные названия, а лучше ссылки откуда скачать. Особенно интересно, если есть опыт использования. Если заинтересует, то буду тестировать. Пока есть опыт говорящий о том, что функция в тотале на данный момент обрабатывает материал лучше чем опробованные аналоги в том числе самописные.
Спасибо за ключ для запуска нового экземпляра программы. Изменю скрипт, который как раз запускает, выбирает нужную папку и файл и вызывает функцию.
В ней не хватает только того чтобы окно закрыть и еще не понятно как получить дескриптор именно нового окна.
Скрипт писал на PowerPro, к сожалению полноценного описания найти не удалось поэтому просто переделывал приведенные примеры в кратком мануале и следовательно что было то есть, на полноту претендовать не могу.
Можно ли настроить сам тотал как во втором варианте без PowerPro, т.е. чтобы запускался, делал что надо и закрывался?
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
См. выше пост Flasher'а.На счет стороннего софта пишите конкретные названия, а лучше ссылки откуда скачать
А не скинешь в ЛС код? Посмотрю на досуге. Авось, что и предложу. А может, наоборот, свой опыт обогащу.Скрипт писал на PowerPro
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Вахмурка, вот тот скрипт:
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 минут:
Мне требуется снятие протокола MIME, приблуды (утилиты) способные это сделать в студию. О достойных внимания вы получите подробный отчет и сравнительный анализ на многих миллионах сообщений!
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 писал(а):Есть. И я его приводил в довесок к своему скрипту декодирования. Об остальном написал выше.
Мне требуется снятие протокола MIME, приблуды (утилиты) способные это сделать в студию. О достойных внимания вы получите подробный отчет и сравнительный анализ на многих миллионах сообщений!
Не подойдёт ли вариант с использованием плагина Autorun? Он позволит при запуске Total Commander (точнее, его дополнительного экземпляра) выполнить команду cm_decode, задать задержку, затем выполнить команду cm_Exit. Единственно, что потребуется дополнительно, это послать нажатие “Enter”, для чего можно использовать простейший скрипт SendEnter.vbs:Aspin писал(а):Можно ли настроить сам тотал как во втором варианте без PowerPro, т.е. чтобы запускался, делал что надо и закрывался?
Код: Выделить всё
'===========================================================
' Посылает нажатие клавиши Enter
'===========================================================
WScript.CreateObject("WScript.Shell").SendKeys "{Enter}"
Wscript.QuitКод: Выделить всё
Sleep 500
SendCommand cm_Decode
ShellExec "%COMMANDER_PATH%\VBS\SendEnter.vbs"
Sleep 1000
SendCommand cm_ExitКод: Выделить всё
c:\totalcmd\Totalcmd.exe /I=c:\totalcmd\wincmd_test.ini /N /P=L /R=c:/testout /L="%1"1. В основном варианте wincmd.ini ссылки (в разделе [ContentPlugins]) на autorun.wdx либо вовсе не должно быть, либо это должна быть ссылка на копию плагина с другим Autorun.cfg. Иначе основной TC будет открываться и тут же закрываться.
2. Ключ DecodeAutoRename в разделе [Configuration] нужно установить равным 1, чтобы не возникали вопросы с переименованием результирующих файлов в каталоге testout.
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
Почему странным? Совершенно законный способ.Дескриптор я получаю каким-то странным способом
local hwnd=win.handle("c=TTOTAL_CMD")
Навскидку вижу два способа:Вопрос: как мне получить именно дескриптор нового открывающегося скриптом окна
1) Получить заголовок окна и выделить оттуда номер текущей копии в квадратных скобках. К сожалению, способ не универсален, потому как этот номер отключается в настройках;
2) Способ длиннее, но универсальнее. Получить список дескрипторов всех окно с классом TTOTAL_CMD. Запустить Тотал и вновь получить список. Он пополнится новым пунктом. Сравнивая два списка, находим этот новый пункт. Это и есть дескриптор нового окна.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)