0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 3
|
|
1 | |
MASM Получение и изменение аргументов командной строки26.01.2016, 06:20. Показов 2847. Ответов 2
Метки нет (Все метки)
MASM
Доброго времени суток! Задача: получить аргументы, например, ARG1=Value 1st ARG2=Value 2nd, и привести их к виду: ARG1="Value 1st" ARG2="Value 2nd". Количество аргументов изначально неизвестно. Потратил уже 3 дня на поиск решения и попытки реализации - все бестолку. Максимум, что удалось - получит аргументы, но только без цикла и всего несколько, используя GetCl... Естественно, аргументы получены некорректно, то есть ARG1=Value 1st - это 2 аргумента. P.S.: В masm мои познания почти нулевые, но задача поставлена именно для masm.
0
|
26.01.2016, 06:20 | |
Ответы с готовыми решениями:
2
Буфер для аргументов командной строки Реализация аргументов командной строки Передача аргументов командной строки Передача аргументов из командной строки |
Terminator of naked apes
832 / 139 / 34
Регистрация: 13.02.2015
Сообщений: 328
|
|
27.01.2016, 10:00 | 2 |
Как бы выразился в этом случае в имманентно присущей ему интеллигентной манере старина Лесли, "CODE OR GTFO" (например ;о)
0
|
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 3
|
||||||
27.01.2016, 12:25 [ТС] | 3 | |||||
Задача решена! (как частная)
Изначально она была немного глобальнее, поэтому выкладываю код полностью с комментариями и описанием полной версии задачи. Говорю сразу, в masm я полный ноль, поэтому мои комментарии по большей части могут быть ошибочными (комментировал для себя, на всякий случай). Так же, код нерационален, кто предложит более рациональный вариант, тому честь и хвала Итак, задача: имеется EXE файл, который запускается через VB-скрипт. Необходимо подменить оригинальный файл (переименовать его), то есть, создать прослойку, которая будет получать от скрипта аргументы, запускать оригинальный файл от имени другого пользователя, автоматически вводить пароль этого пользователя и подставлять аргументы. Отступление. Неудачные попытки. И как пришел к постановке такой задачи: Изначально пытался реализовать в EXE запуск VB-скрипта, в котором все это описано, но, тут появились проблемы: 1) Если запускать от имени другого пользователя, а не с его привилегиями, пароль автоматически не подставляется средствами командной строки. 2) Если использовать функцию VBS SendKeys для подстановки пароля, то все хорошо, но... Если по умолчанию в системе стоит русская раскладка клавиатуры, подставляются совершенно другие символы. Менять раскладку по умолчанию и первоначальный скрипт было нельзя. (даже не спрашивайте, просто нельзя и все) Именно это меня и подтолкнуло к постановке такой задачи и ее решению. И, наконец-то, сам код, то есть решение задачи:
P.S.: Кроме тех, кто возьмется (если такие найдутся) за оптимизацию кода, отдельная благодарность тем, кто подправит мои комментарии Добавлено через 13 минут Чуть не забыл, результаты: На входе: ARG1=VALUE ARG2="Second value" ARG3="Date is 01.01.1970" ARG4="Time is 00:00:00" На выходе (подставляем в RUNAS): 1) если аргументы заданы: /user:PC-NAME\username "C:\Program Files (x86)\Vendor\ProgramName_.exe ARG1=VALUE ARG2="""Second value""" ARG3="""Date is 01.01.1970""" ARG4="""Time is 00:00:00"""" 2) если аргументы не заданы: /user:PC-NAME\username "C:\Program Files (x86)\Vendor\ProgramName_.exe "
0
|
27.01.2016, 12:25 | |
27.01.2016, 12:25 | |
Помогаю со студенческими работами здесь
3
Разбор аргументов командной строки Вывод аргументов командной строки Передача аргументов из командной строки Передача аргументов командной строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |