1 (изменено: ChaoLi, 2013-01-12 12:05:48)

Тема: АНК: Выбрать радиокнопку в найденном окне запущенного приложения

Всем привет. Уважаемые знатоки не подскажете как реализовать(на JScriptили ещё на чём) или где конкретно почитать?

Имеется приложение запущенное стандартным образом, в нём открыто модально окно, в котором есть 2 радиокнопки и неактивная кнопка "продолжить". В зависимости от выбора радиокнопки станет активна кнопка "продолжить" или приложение будет закрыто.

Хотелось бы "отловить окно", эмулировать нажатие первой радиокнопки, затем эмулировать нажатие "продолжить".
Причём радиокнопки нельзя выбрать с помощью клавиатуры, ни ТАБом, ни стрелками не перейти на них. Только мышкой.

Я себе это так представляю:

1. "Отлавливаем" открытое окно

//JScript
var WshShell = WScript.CreateObject("WScript.Shell");
KL = true;
while (KL) {
  if (WshShell.AppActivate("Название окна")) {
    KL = false;
  }
}

2. Получаем элементы управления данного окна.
3. Возвращаем в окно значение(Истина) той или иной кнопке.

2

Re: АНК: Выбрать радиокнопку в найденном окне запущенного приложения

AutoIt или AutoHotKey. Второе — «их есть у нас». Перекладываю тему в соответствующий раздел.

Причём радиокнопки нельзя выбрать с помощью клавиатуры, ни ТАБом, ни стрелками не перейти на них. Только мышкой.

Это как? Назовите приложение и диалог.

3

Re: АНК: Выбрать радиокнопку в найденном окне запущенного приложения

Причём радиокнопки нельзя выбрать с помощью клавиатуры, ни ТАБом, ни стрелками не перейти на них. Только мышкой.

Это как? Назовите приложение и диалог.

1C: Бухгалтерия 8(и другие типовые конфигурации). После обновления через конфигуратор, при первом запуске программы пользователем открывается сама программа и модальное подчинённое окно о легальности получения обновления где и нужно выбрать радиокнопки. Там имеется ещё текстовое поле с разными ссылками на сайты. Вот ТАБ по ним и переходит. Наверняка специально отключили радиокнопки для обхода с клавиатуры.

4 (изменено: creature.ws, 2013-01-12 15:20:13)

Re: АНК: Выбрать радиокнопку в найденном окне запущенного приложения

"отловить окно"

WinWait, Название окна 

эмулировать нажатие первой радиокнопки

Control, Check,, имя класса радиокнопки 

затем эмулировать нажатие "продолжить"

ControlClick, имя класса кнопки «продолжить»

Подразумевается, что обсуждаемые кнопки — «стандартные дочерние окна».
Класс кнопок определять с помощью AU3_Spy или Au3Info из дистрибутивов Autohotkey или Autoit.

5 (изменено: alexii, 2013-01-13 00:13:01)

Re: АНК: Выбрать радиокнопку в найденном окне запущенного приложения

creature.ws пишет:

"отловить окно"

WinWait, Название окна 

эмулировать нажатие первой радиокнопки

Control, Check,, имя класса радиокнопки 

затем эмулировать нажатие "продолжить"

ControlClick, имя класса кнопки «продолжить»

Подразумевается, что обсуждаемые кнопки — «стандартные дочерние окна».
Класс кнопок определять с помощью AU3_Spy или Au3Info из дистрибутивов Autohotkey или Autoit.

Спасибо большое-пребольшое!!! Нет слов. Оценил весь потенциал данной программы) Получилось к вечеру-таки автоматизировать. Я правильно понимаю, что компилировав скрипт в exe он будет работать на любом компьютере, где не установлена программа AutoHotKey?)

Вот: мало ли кому понадобится

WinWait, Проверка легальности получения             ; ждём запуска окна.. время ожидания бесконечно
if ErrorLevel
{
    return                     ; сюда попадаем, если не дождались запуска(если время ожидания было бы задано)
}
else                                                                             ; если дождались запуска окна, то
    Sleep, 200                                                               ; на всякий случай ждёмс пару миллисекунд
    WinActivate Проверка легальности получения     ; активируем окно
    Sleep, 200
    Control, Check,, V8FormElement3                           ; как-будто бы выбираем "подтверждаю"
    Sleep, 200
    Send ^{Enter}                                                       ; и посылаем нажатие "Ctrl+Enter" для продолжения.

6

Re: АНК: Выбрать радиокнопку в найденном окне запущенного приложения

ChaoLi пишет:

...Нет слов. Оценил весь потенциал данной программы)

OFF: Довольно смелое, но, смею заверить, неверное заявление.
         Как минимум - преждевременное. 

7

Re: АНК: Выбрать радиокнопку в найденном окне запущенного приложения

Я правильно понимаю, что компилировав скрипт в exe он будет работать на любом компьютере, где не установлена программа AutoHotKey?)

Теоретически — да.

Я обрамил код в Вашем посте тэгом «code».