Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

AskParam - диалог запроса параметров командной строки
Goto page 1, 2, 3 ... 18, 19, 20  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Sat Aug 21, 2010 22:10    Post subject: AskParam - диалог запроса параметров командной строки Reply with quote

Утилита писалась сравнительно давно, упоминалась неоднократно на страницах форума, но темы для нее не было.

AskParam позволяет запрашивать параметры командной строки запускаемого приложения в графическом диалоговом окне и вставлять введенные строки в параметры в любом порядке и количестве. При запросе каждого параметра можно указать текст заголовка окна, сообщение и набор строк выпадающего списка значений. Переменные окружения в предлагаемых значениях раскрываются автоматически перед отображением запроса ввода параметра.

Переменные окружения раскрываются везде: перед отображением предлагаемого текста, в пути к запускаемой программе, в строке параметров, передаваемых этой программе, а также в заголовке окна и подсказке.



Информация о последней версии

Версия: 1.0.6
URL: AskParam на wincmd.ru / AskParam на totalcmd.net

Требования: Windows 2000 и выше

Особенности:

+ любое число вводимых параметров и их указание в параметрах запуска программы
+ возможность менять заголовок окна, сообщение о вводе параметра и набор строк выпадающего списка
+ раскрытие переменных окружения в отображаемых строках диалога и параметрах запуска программы
+ полная поддержка Юникода


Параметры командной строки:

/c"Привет" - устанавливает заданный заголовок окна
/t"Вариант ответа", /u"Выделенный вариант" - добавляют строки в выпадающий список (можно несколько раз указывать), /u также выделяет свой вариант
/p"Введите параметр:" - устанавливает текст приглашения, а также отображает диалог для запроса параметра (при этом предлагаемые значения, заголовок окна и прочие опции должны быть установлены заранее)
/r[-] - включает/выключает очистку выпадающего списка после ввода очередного параметра
/h[-] - включает/выключает режим ввода пароля (звездочки)
/q"^" - задает символ, который будет заменен на двойную кавычку внутри строк параметров /c, /t и /p
/s{0-8} - задает режим запуска процесса (0 - скрытый, 1 - нормальный, 2 - свернутый, 3 - развернутый)
/w - включает опцию ожидания завершения процесса

Параметры /c, /t, /u, /p, /r, /h, /q можно использовать любое число раз для запроса любого числа параметров. После параметров указывается строка для выполнения, в которой можно использовать переменные %1, %2 и т.д. для вставки текста, введенного пользователем в ответ на запрос соответствующего параметра. Максимальное число цифр номера параметра - 3. Если сразу после параметра нужно указать цифру, которую нужно передать запускаемому приложению, номер параметра нужно указывать трехзначным, добавив нулей слева, т.е. %001 вместо %1 (таким образом, если указать %0012, это будет означать вставку текста первого запрошенного параметра и цифры 2). Также можно использовать системные переменные окружения. Для вставки символа % нужно удвоить его.

При запуске с панели инструментов ТК нужно помнить, что для вставки в строку параметров символа % нужно удвоить его. А если этот символ % нужно передать запускаемому приложению, то нужно написать его 4 раза (тотал передаст половину символов %, а потом AskPAram еще в 2 раза сократит их число при анализе строки).


В качестве примеров использования можно привести запрос числа секунд до выключения компьютера, кнопки панели управления виртуальной панелью, кнопку архивирования с запросом пароля и другие. Также простенький демонстрационный пример AskParam показывает, если запускать ее без параметров (нижняя строчка сообщения).


Это описание параметров может быть полезным
Этот краткий перечень вариантов применения может быть интересным
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…


Last edited by MVV on Tue May 17, 2016 12:17; edited 11 times in total
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Sat Aug 21, 2010 22:19    Post subject: Reply with quote

GGS wrote:
Вопрос по переменным окружения.
Для теста использую команду: AskParam /c /t"%TIME%" /p cd.

Если команда выполняется из консоли (cmd /c), то подсказка %TIME% раскрывается в своё значение.
Если из ком.строки ТС или из ТС-кнопки, то просто вижу %TIME% как текст.
Речь только об отображении в окне ввода, в качестве параметра %1 передаётся правильно. Аналогично с %DATE%.
Переменные %COMMANDER_PATH%, %TEMP% и пр. раскрываются в качестве подсказки в своё значение, а эти - нет.

Можно исправить положение?

Проблема в том, что %TIME% и %DATE% - псевдопеременные, о существовании которых знает лишь командный интерпретатор. Как официальные переменные окружения они не существуют. Вот почему другие программы не могут раскрыть их.

Но ты можешь запускать CMD, а из него AskParam. То есть, в данном случае потребуется лишь приписать строку cmd.exe /c перед путем к AskParam.exe: cmd.exe /c AskParam.exe /c /t"%TIME%" /p cd.
Единственный минус такого способа вызова - черное окно в фоне. Однако, если поставить галочку запуска программы в свернутом виде, оно будет запускаться в виде кнопки панели задач. Также можно создать ярлык для CMD.exe, в свойствах которого прописать запуск в свернутом виде и параметр /c - и запускать AskParam просто как параметр этого ярлыка. Тогда мы получим возможность задать значок и название кнопки на панели задачSmile
Кстати, еще минус такого способа - то, что CMD.exe иногда криво обрабатывает параметры, если имя программы для запуска заключено в кавычки (там целая система, благодаря которой CMD.exe работает намного тупее, чем если бы ее вообще не было).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Sun Aug 22, 2010 01:06    Post subject: Reply with quote

MVV wrote:
CMD.exe работает намного тупее, чем если бы ее вообще не было

Да, намучился я с кавычками. Всё получилось, спасибо. Тестовая кнопка такая:
Code:
TOTALCMD#BAR#DATA
cmd /c start "" "%COMMANDER_PATH%\TOOLs\AskParam.exe"
/c"Заголовок" /t"%%TIME:~0,5%%" /p"Время:" cmd /k echo %%1
%COMMANDER_PATH%\TotalCmd.exe,3
AskParam TEST

1
-1


Last edited by GGS on Sun Aug 22, 2010 01:54; edited 1 time in total
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Sun Aug 22, 2010 01:27    Post subject: Reply with quote

Code:
cmd=cmd /v /c
param= (Echo Время: !TIME!)&(Echo Дата:  !DATE!)&(Set /p #= %N )&(If Not Defined # Set #= )&(%P%N !#!)

Исправлено
Дополнено


Last edited by Serge Yolkin on Sun Aug 22, 2010 02:54; edited 2 times in total
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Sun Aug 22, 2010 02:00    Post subject: Reply with quote

Serge Yolkin
Задача была видеть текущее значение (в данном примере время) с возможностью его корректировки и отправки в качестве параметра дальше. Редактировать поле ввода AskParam гораздо удобнее, чем в консоли.
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Sun Aug 22, 2010 02:42    Post subject: Reply with quote

GGS
Зато дату/время передает...
Back to top
View user's profile Send private message
Infocatcher



Joined: 20 Apr 2010
Posts: 9

Post (Separately) Posted: Sun Aug 29, 2010 00:33    Post subject: Reply with quote

А можно наследовать системную тему оформления?
Было бы совсем замечательно. Smile
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Sun Aug 29, 2010 02:15    Post subject: Reply with quote

Наверн можно добавить файл манифеста, чтобы это заработало (попробовать создать по аналогии с другой программой). Я никогда не использую тем кроме классической, поэтому разницы нигде не вижу.

Декодируй, распакуй и положи AskParam.exe.manifest рядом с AskParam.exe:
Code:
MIME-Version: 1.0
Content-Type: application/octet-stream; name="AskParam.exe.manifest.7z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="AskParam.exe.manifest.7z"

N3q8ryccAANeCYjFYAEAAAAAAABsAAAAAAAAAC8xtCkAHg/LhxHYzmaRD4Meyv17M9R/6bfaKDF2
JWYgTSoJbWr3KXA4QROVCIrQWx2TS+JShoUL9yq/xlgAFfVxB7m0LUKcUW+08Q3hbDV4eBstqWdT
OM/07c5ispOErlyzdE9T6EpPkxGG3WXErXanWcge0LIcd9TKSlb/UitpLVk8knC9m4Poq1+vL5RA
8kjlxvLXYw0xqrVnzWJvgU4hR8PzSUn42BNRaXCp+0sB1fRTOidFiD5t681N8jTDSNYBishdWbLi
FbTfNZy/RKf96FyEvVfG2RWu12huSbhJ3X6yUrhu3NkYFRrgxU0H0HkT5zl9uQ0Q1JLMwFFlGwK1
SFIm35nNOSfKrVxV+/n1Goc23Eu0B8KRkNy+V1Elf+8WOcNtit7er3baSgpkcyMAJHnxHZj0+FWV
PfHqc0MBR+t09AHR6rJ93hM3uhxZ/eBnFsj+9BT15E3uT7Jv7VFk0xkAAQQGAAEJgWAABwsBAAEj
AwEBBV0AAAEADIJOAAgKAaB40NUAAAUBES0AQQBzAGsAUABhAHIAYQBtAC4AZQB4AGUALgBtAGEA
bgBpAGYAZQBzAHQAAAAUCgEAEv3jDABHywEVBgEAIAgAAAAA


_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Infocatcher



Joined: 20 Apr 2010
Posts: 9

Post (Separately) Posted: Sun Aug 29, 2010 02:49    Post subject: Reply with quote

Не помогло.
Или с AskParam.exe.manifest что-то не так, или все-таки одного его в данном случае недостаточно.
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Sun Aug 29, 2010 08:48    Post subject: Reply with quote

Infocatcher
У меня сработало, см. на кнопки
MVV, очередное спасибо.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Sun Aug 29, 2010 11:00    Post subject: Reply with quote

У меня тоже вид элементов окна изменился, как справочного сообщения, так и диалога ввода - пришлось включить службу поддержки тем для проверки.

А теперь спросите небезызвестную корпорацию, почему умная система виндовс не может сама без этого стандартного файлика закруглить кнопочки. Very Happy
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Sun Aug 29, 2010 11:10    Post subject: Reply with quote

MVV
А может ну её, эту корпорацию, и интегрировать manifest в ресурсы. Я попробовал, всё OK.

P.S. Кстати, TotalCmd.exe имеет manifest в ресурсах, но, несмотря на это, и в виде отдельного файла. Зачем такое дублирование?


Last edited by GGS on Sun Aug 29, 2010 13:18; edited 1 time in total
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Sun Aug 29, 2010 12:11    Post subject: Reply with quote

Можно и в ресурсы, эффект одинаков. Но я не понимаю, зачем такую хрень встраивать в ресурсы.

Кстати, да, у тотала манифест и в ресурсах. Значит, файл можно безболезненно убить.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Sun Aug 29, 2010 12:49    Post subject: Reply with quote

MVV wrote:
Но я не понимаю, зачем такую хрень встраивать в ресурсы.
Отдельным файлом может "потеряться". Размер на 1кБ увеличивается, но всё равно за пределы одного кластера программа вышла.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Sun Aug 29, 2010 13:44    Post subject: Reply with quote

GGS wrote:
P.S. Кстати, TotalCmd.exe имеет manifest в ресурсах, но, несмотря на это, и в виде отдельного файла. Зачем такое дублирование?

Из истории:
Quote:
21.06.06 Добавлено: Файл totalcmd.exe.manifest, поскольку Totalcmd в некоторых случаях не использовал стиль XP (внутренний manifest-ресурс игнорировался).

_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page 1, 2, 3 ... 18, 19, 20  Next
Page 1 of 20

 
Jump to:  
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