![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 19.06.2009
Сообщений: 163
|
![]()
Как реализовать в макросе запуск mstsc.exe с вводом ip, логина и пароля. Чтобы сразу запускался консольный вариант и не спрашивал данные пользователя. Спрашиваю потому что параметрами самого mstsc такого не сделать. Вариант с сохранением настроек в файл rdp не предлагать, т.к. предполагается запускать и на др. машинах, а в этом случае пароли в rdp сбрасываются. И еще такое пожелание: чтобы ip, логин и пароль брались из ячеек A1, A2 и A3.
Тут вот кое что есть, но вот логин и пароль не знаю как вставить: Код:
Последний раз редактировалось ru3000; 19.06.2009 в 12:33. |
![]() |
![]() |
![]() |
#2 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Здесь есть список допустимых параметров командной строки для этой программы. Вы же сами пишете: Цитата:
Но есть ещё вариант в стиле "per rectum": мы можем запустить программу без параметров, а потом посылать ей нажатия кнопок в нужной последовательности, чтобы курсор перескакивал из поля в поле, и в нужные поля вводились символы. Можно также средствами WinAPI посылать команды окну приложения mstsc.exe, но это ещё сложнее. Короче, сформировать любую строку запуска (всё, что Вы запускаете через Пуск - Выполнить, или через интерфейс командной строки) средствами Excel, и запустить её на выполнение - не проблема. А вот обход ограничений программы - это уже требует времени и сил. (добавлено) Есть ещё одна небольшая проблема. Посылать нажатия клавиш, конечно, можно, но следует учесть один нюанс. Если ранее на этом компьютере уже выполнялись подключения, некоторые поля могут быть скрыты, и фокус ввода может попадать на другие поля. К примеру, если ранее к этому хосту не подключались, после нажатия на кнопку Подключить фокус ввода попадает в поле Логин. Но, если ранее к этому хосту уже выполнялось подключение, то фокус ввода попадает в поле Пароль (так как логин сохранился со времени предыдущего подключения), а средствами Excel сложно узнать, в каком из полей находится курсор. Впрочем, сейчас попытаюсь что-нибудь изобрести. Самому пригодится, если получится. (добавлено позже) Посмотрите также макросы, выполняющие ввод логина и пароля (в том числе и для авторизации пользователя на сайтах, и разграничения доступа к книге Excel) А здесь есть макросы для работы с сетью и оборудованием, в том числе с IP-адресами и протоколом telnet
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 19.11.2011 в 00:09. |
||
![]() |
![]() |
![]() |
#3 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Вот такой код у меня работает нормально:
Код:
Я подбирал по своему компьютеру. Первая пауза: For j = 1 To 100000: DoEvents: Next j - это время между отправкой комнды, и запуском окна приложения (зависит от скорости доступа к диску и т.д.) Вторая - Пауза = 600 между отправкой букв (зависит от загруженности процессора и т.п.) Запустите макрос ПримерИспользования. Отпишитесь о результатах. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 19.06.2009
Сообщений: 163
|
![]()
Спасибо за ответ. Но текст у меня не вводится в поле пользователь и пароль. Возможно потому что у меня виста. Этот макрос планируется запускать на разных машинах, а скотость нета везде разная и процы соответственно тоже, так что с сендкеем немного проблематично. Не будешь же каждый раз исправлять задержку. Походу это гиблый вариант. Можеть быть есть альтернатива для mstsc, которая использует виндовый RDP и сохраниет пароли?
Еще раз спасибо за помощь. Последний раз редактировалось ru3000; 19.06.2009 в 17:56. |
![]() |
![]() |
![]() |
#5 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
На Висте проверить не имею возможности... Попробуйте поставить задержку не 100000, а 800000 И вместо 600 - что-то около 5000 Может, просто окно не успевает открыться. У меня-то окно появляется моментально... |
|
![]() |
![]() |
![]() |
#6 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
А ещё лучше средствами WinAPI перебирать все окна до тех пор, пока не появится нужное. Цитата:
Все остальные способы намного сложнее. Цитата:
Но, согласитесь, это уже вопрос не для раздела Microsoft Office Excel... |
|||
![]() |
![]() |
![]() |
#7 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
В случае с Windows Vista должен сработать такой вариант:
Код:
В данной версии макроса кириллица не поддерживается. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 19.06.2009
Сообщений: 163
|
![]()
Спасибо за помощь, но это все не стабильные варианты. А надо чтобы везде и на каждой машине работало.
Вот что я нашел в самом excel!!! (см. вложение) В нете порылся по этому поводу, кое-что есть: Код:
Последний раз редактировалось ru3000; 06.07.2009 в 16:06. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 19.06.2009
Сообщений: 163
|
![]()
Я с activx никогда не работал. Если кто в курсе, как это сделать, помогите. Вроде как должно получиться.
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
А почему обязательно с Excel .Если Excel необходим только для хранения данных для ввода можно отдельное приложение написать,напиши на мыло.что конкретно надо,что есть,попробую помочь.
Анализ,обработка данных Недорого
Последний раз редактировалось doober; 07.07.2009 в 08:58. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод логина и пароля. С++ Builder | lamaksi | C++ Builder | 2 | 05.03.2009 15:59 |
запуск exe | Manitu | Помощь студентам | 11 | 02.05.2008 19:03 |
как реализовать в программе, запуск bat файлов? | SereJa1020 | Общие вопросы Delphi | 1 | 06.03.2008 18:10 |
Запуск exe с параметрами | Altera | Общие вопросы Delphi | 2 | 26.02.2008 21:25 |