Управление окнами без макросов

Обсуждение программы xStarter
Ответить
Аватара пользователя
LizardOfOzz
Гвардии пилот - Наставник
Сообщения: 1165
Зарегистрирован: Пт сен 08, 2006 8:59 pm
Благодарил (а): 8 раз
Поблагодарили: 38 раз
Контактная информация:

Управление окнами без макросов

Сообщение LizardOfOzz » Пт сен 08, 2006 9:37 pm

Всем привет!

Задача: нужно организовать автологин в wingate. служба создаёт окно, в него нужно ввести логин, пароль и нажать кнопку (можно enter).

Проблему решил написав прогу, которая шлёт окну с заданным заголовком сообщения WM_Settext и WM_Command, но хочется использовать xStarter.

Нашёл действие "послать нажатия клавиш", но как его натравить на окно не знаю =(
Последний раз редактировалось LizardOfOzz Ср сен 13, 2006 7:02 pm, всего редактировалось 1 раз.

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Сообщение Alex » Пн сен 11, 2006 3:16 am

Доброго времени суток!

В офисе WinGate стоит, попробую там создать для Вас задачу. Хотя с другой стороны там вроде можно нажать галочку и параметры логона будут запоминаться ;). Или я что-то путаю ;) ?

Аватара пользователя
LizardOfOzz
Гвардии пилот - Наставник
Сообщения: 1165
Зарегистрирован: Пт сен 08, 2006 8:59 pm
Благодарил (а): 8 раз
Поблагодарили: 38 раз
Контактная информация:

Сообщение LizardOfOzz » Пн сен 11, 2006 3:56 pm

У меня вингейт 6.11, мэй би в более поздних версиях есть такая галочка...

Но хотелось бы иметь универсальное решение. Как-нибудь можно скрестить действия "найти окно" и "послать нажатия клавиш"?

_P@K
Авиаконструктор
Сообщения: 51
Зарегистрирован: Чт янв 05, 2006 6:41 pm
Благодарил (а): 0
Поблагодарили: 0

Сообщение _P@K » Пн сен 11, 2006 5:41 pm

Похоже у меня подобная проблема.
Есть программа, которая создает дочернее окно с одноименным названием. Вот в это дочернее окно надо ввести пароль и послать нажатие кнопок. Средствами xStarter не получается, хотя дочернее окно в фокусе, активно и т.д.

Как это сделать ?

Lutik
Пилотируем с автопилотом
Сообщения: 34
Зарегистрирован: Пт сен 01, 2006 10:23 am
Благодарил (а): 0
Поблагодарили: 4 раза

Сообщение Lutik » Ср сен 13, 2006 1:13 pm

поддерживаю, нужно хотябы действие послать сочетание клавиш/текст активному окну

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Сообщение Alex » Ср сен 13, 2006 1:33 pm

Извиняюсь, с _P@K мы списались в ICQ и в форум забыл знести результаты.

1. SendKey отправляет нажатия клавиш в текущее активное окно, если имя программы оставлено пустым.
2. SendKey полностью эмулирует ввод с клавиатуры, поэтому чтобы вводить некоторый текст, поле ввода должно иметь фокус (мигать курсор ввода). Иногда бывает, что при открытии новых окон по умолчанию активна какая-нибудь кнопка, если туда вводить текст это ни к чему не приведет :).
В таком случае, чтобы текст попал туда куда надо, можно отправить нажатие кнопки TAB столько раз, сколько нужно.
3. xStarter отправляет нажатия клавиш с нечеловеческой скоростью :). Это значит, что если открывается некоторое приложение, следом за ним сразу отправляются нажатия клавиш, эти клавиши могут "не долететь" до приложение. Оно просто может быть еще не запустилось. Нужно примерно представлять сколько запускается приложение и перед отправкой клавиш делать паузу.
Например:
RunProcess1: notepad.exe
Pause1: 2000
SendKey1: Hello world! :)

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Управление укнами без макросов

Сообщение Alex » Ср сен 13, 2006 1:36 pm

LizardOfOzz писал(а):Задача: нужно организовать автологин в wingate. служба создаёт окно, в него нужно ввести логин, пароль и нажать кнопку (можно enter).
Хочу уточнить еще по этой задачке. Автологин хотите сделать в виде:
1. Программа отслеживает появление окна для ввода пароля и имя пользователя и отправляет то, что нужно.
2. Программа только при нажатии определенной комбинации клавиш отправляет то, что нужно.

Аватара пользователя
LizardOfOzz
Гвардии пилот - Наставник
Сообщения: 1165
Зарегистрирован: Пт сен 08, 2006 8:59 pm
Благодарил (а): 8 раз
Поблагодарили: 38 раз
Контактная информация:

Сообщение LizardOfOzz » Ср сен 13, 2006 7:00 pm

Вариант первый. Как оказалось, всё можно сделать стандартными средствами.

Создал задачу, запускающуюся по событию "окна windows" с параметром WinGate Internet Client Login. В нём два действия.

Первое - "команда окну", WinGate Internet Client Login, фокусировать
Второе - "послать нажатия клавиш, "" (имя программы не указано), {TAB}{TAB}<nick>{TAB}<pass>{ENTER}

Спасибо за помощь!

Ответить