Всем привет!
Задача: нужно организовать автологин в wingate. служба создаёт окно, в него нужно ввести логин, пароль и нажать кнопку (можно enter).
Проблему решил написав прогу, которая шлёт окну с заданным заголовком сообщения WM_Settext и WM_Command, но хочется использовать xStarter.
Нашёл действие "послать нажатия клавиш", но как его натравить на окно не знаю =(
Управление окнами без макросов
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
Управление окнами без макросов
Последний раз редактировалось LizardOfOzz Ср сен 13, 2006 7:02 pm, всего редактировалось 1 раз.
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
- Alex
- Ас
- Сообщения: 2833
- Зарегистрирован: Вт апр 05, 2005 3:28 pm
- Откуда: Kaliningrad City
- Благодарил (а): 2 раза
- Поблагодарили: 91 раз
- Контактная информация:
Извиняюсь, с _P@K мы списались в ICQ и в форум забыл знести результаты.
1. SendKey отправляет нажатия клавиш в текущее активное окно, если имя программы оставлено пустым.
2. SendKey полностью эмулирует ввод с клавиатуры, поэтому чтобы вводить некоторый текст, поле ввода должно иметь фокус (мигать курсор ввода). Иногда бывает, что при открытии новых окон по умолчанию активна какая-нибудь кнопка, если туда вводить текст это ни к чему не приведет .
В таком случае, чтобы текст попал туда куда надо, можно отправить нажатие кнопки TAB столько раз, сколько нужно.
3. xStarter отправляет нажатия клавиш с нечеловеческой скоростью . Это значит, что если открывается некоторое приложение, следом за ним сразу отправляются нажатия клавиш, эти клавиши могут "не долететь" до приложение. Оно просто может быть еще не запустилось. Нужно примерно представлять сколько запускается приложение и перед отправкой клавиш делать паузу.
Например:
RunProcess1: notepad.exe
Pause1: 2000
SendKey1: Hello world!
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: Управление укнами без макросов
Хочу уточнить еще по этой задачке. Автологин хотите сделать в виде:LizardOfOzz писал(а):Задача: нужно организовать автологин в wingate. служба создаёт окно, в него нужно ввести логин, пароль и нажать кнопку (можно enter).
1. Программа отслеживает появление окна для ввода пароля и имя пользователя и отправляет то, что нужно.
2. Программа только при нажатии определенной комбинации клавиш отправляет то, что нужно.
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
Вариант первый. Как оказалось, всё можно сделать стандартными средствами.
Создал задачу, запускающуюся по событию "окна windows" с параметром WinGate Internet Client Login. В нём два действия.
Первое - "команда окну", WinGate Internet Client Login, фокусировать
Второе - "послать нажатия клавиш, "" (имя программы не указано), {TAB}{TAB}<nick>{TAB}<pass>{ENTER}
Спасибо за помощь!
Создал задачу, запускающуюся по событию "окна windows" с параметром WinGate Internet Client Login. В нём два действия.
Первое - "команда окну", WinGate Internet Client Login, фокусировать
Второе - "послать нажатия клавиш, "" (имя программы не указано), {TAB}{TAB}<nick>{TAB}<pass>{ENTER}
Спасибо за помощь!