AskParam - диалог запроса параметров командной строки
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
AskParam - диалог запроса параметров командной строки
Утилита писалась сравнительно давно, упоминалась неоднократно на страницах форума, но темы для нее не было.
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 показывает, если запускать ее без параметров (нижняя строчка сообщения).
Это описание параметров может быть полезным
Этот краткий перечень вариантов применения может быть интересным
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 показывает, если запускать ее без параметров (нижняя строчка сообщения).
Это описание параметров может быть полезным
Этот краткий перечень вариантов применения может быть интересным
Последний раз редактировалось MVV Вт май 17, 2016 11:17, всего редактировалось 11 раз.
Проблема в том, что %TIME% и %DATE% - псевдопеременные, о существовании которых знает лишь командный интерпретатор. Как официальные переменные окружения они не существуют. Вот почему другие программы не могут раскрыть их.GGS писал(а):Вопрос по переменным окружения.
Для теста использую команду: AskParam /c /t"%TIME%" /p cd.
Если команда выполняется из консоли (cmd /c), то подсказка %TIME% раскрывается в своё значение.
Если из ком.строки ТС или из ТС-кнопки, то просто вижу %TIME% как текст.
Речь только об отображении в окне ввода, в качестве параметра %1 передаётся правильно. Аналогично с %DATE%.
Переменные %COMMANDER_PATH%, %TEMP% и пр. раскрываются в качестве подсказки в своё значение, а эти - нет.
Можно исправить положение?
Но ты можешь запускать CMD, а из него AskParam. То есть, в данном случае потребуется лишь приписать строку cmd.exe /c перед путем к AskParam.exe: cmd.exe /c AskParam.exe /c /t"%TIME%" /p cd.
Единственный минус такого способа вызова - черное окно в фоне. Однако, если поставить галочку запуска программы в свернутом виде, оно будет запускаться в виде кнопки панели задач. Также можно создать ярлык для CMD.exe, в свойствах которого прописать запуск в свернутом виде и параметр /c - и запускать AskParam просто как параметр этого ярлыка. Тогда мы получим возможность задать значок и название кнопки на панели задач:)
Кстати, еще минус такого способа - то, что CMD.exe иногда криво обрабатывает параметры, если имя программы для запуска заключено в кавычки (там целая система, благодаря которой CMD.exe работает намного тупее, чем если бы ее вообще не было).
Да, намучился я с кавычками. Всё получилось, спасибо. Тестовая кнопка такая:MVV писал(а):CMD.exe работает намного тупее, чем если бы ее вообще не было
Код: Выделить всё
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
Последний раз редактировалось GGS Вс авг 22, 2010 01:54, всего редактировалось 1 раз.
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
Код: Выделить всё
cmd=cmd /v /c
param= (Echo Время: !TIME!)&(Echo Дата: !DATE!)&(Set /p #= %N )&(If Not Defined # Set #= )&(%P%N !#!)
Дополнено
Последний раз редактировалось Serge Yolkin Вс авг 22, 2010 02:54, всего редактировалось 2 раза.
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
-
Infocatcher
- Сообщения: 9
- Зарегистрирован: Вт апр 20, 2010 01:44
Наверн можно добавить файл манифеста, чтобы это заработало (попробовать создать по аналогии с другой программой). Я никогда не использую тем кроме классической, поэтому разницы нигде не вижу.
Декодируй, распакуй и положи AskParam.exe.manifest рядом с AskParam.exe:
Декодируй, распакуй и положи AskParam.exe.manifest рядом с AskParam.exe:
Код: Выделить всё
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
-
Infocatcher
- Сообщения: 9
- Зарегистрирован: Вт апр 20, 2010 01:44
MVV
А может ну её, эту корпорацию, и интегрировать manifest в ресурсы. Я попробовал, всё OK.
P.S. Кстати, TotalCmd.exe имеет manifest в ресурсах, но, несмотря на это, и в виде отдельного файла. Зачем такое дублирование?
А может ну её, эту корпорацию, и интегрировать manifest в ресурсы. Я попробовал, всё OK.
P.S. Кстати, TotalCmd.exe имеет manifest в ресурсах, но, несмотря на это, и в виде отдельного файла. Зачем такое дублирование?
Последний раз редактировалось GGS Вс авг 29, 2010 13:18, всего редактировалось 1 раз.
- CaptainFlint
- Сообщения: 6243
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Из истории:GGS писал(а):P.S. Кстати, TotalCmd.exe имеет manifest в ресурсах, но, несмотря на это, и в виде отдельного файла. Зачем такое дублирование?
21.06.06 Добавлено: Файл totalcmd.exe.manifest, поскольку Totalcmd в некоторых случаях не использовал стиль XP (внутренний manifest-ресурс игнорировался).
Почему же, ё-моё, ты нигде не пишешь "ё"?