VBScript для автоматизации управления интерфейсом

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

VBScript для автоматизации управления интерфейсом

Сообщение jangle » 11.03.2012 (Вс) 14:53

Понадобилась некая софтинка для эмуляции работы пользователя. Нужно в автоматическом режиме кликать по-кнопочкам программы, выполнять функции пользователя в приложении. А затем получив некий результат, вытащить его из приложения и отправить в БД. Это как бы удаленное нагрузочное и функциональное тестирование.
Первая мысль, сделать на основе MS ScriptControl + набор VB классов для выдирания инфы из окон тестируемого приложения. Только непонятно, можно ли сделать на VBScript полноценную эмуляцию клавиатуры и мыши? Отправка нажатий кнопок в приложение, все события мыши (например захват объекта и перетаскивание по форме) и т.д. Если скриптами все это сделать невозможно, то идея заранее обречена на провал.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: VBScript для автоматизации управления интерфейсом

Сообщение Хакер » 11.03.2012 (Вс) 14:56

Если реализация посредника между скриптом и Windows API пишется не на вбскрипте, а на другом языке (в данном случае на VB), то какая разница, и прчём тут вообще VBScript?

Все трудности на посреднике, VBScript-у придётся просто управлять посредником. Сможет ли VBScript управлять посредником? Почему нет?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: VBScript для автоматизации управления интерфейсом

Сообщение jangle » 11.03.2012 (Вс) 15:04

Ок, тогда вопрос как полноценно эмулировать работу с мышью на VB? Не просто клики в неких координатах экрана, а сложные действия, типа захвата объекта на форме, нажатием левой кнопки мыши, и перетаскивания его в другой конец формы.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: VBScript для автоматизации управления интерфейсом

Сообщение Хакер » 11.03.2012 (Вс) 15:11

В чём проблема?
Не слышал о функции mouse_event?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: VBScript для автоматизации управления интерфейсом

Сообщение VBTerminator » 12.03.2012 (Пн) 6:51

Может быть, тогда уж сразу воспользоваться посылкой сообщений (функцией SendMessage)?

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: VBScript для автоматизации управления интерфейсом

Сообщение ger_kar » 12.03.2012 (Пн) 8:21

А почему бы не применить AutoIt Script, язык с VB подобным синтаксисом, простейший по своей сути и специально заточенный как раз для таких целей.
И учить его особо не надо. Прочитал один раз справку, посмотрел примеры и вперед.
Распространяется он совершенно бесплатно. Погугли по названию и ты сразу его отыщешь.
Бороться и искать, найти и перепрятать

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: VBScript для автоматизации управления интерфейсом

Сообщение jangle » 12.03.2012 (Пн) 9:29

VBTerminator писал(а):Может быть, тогда уж сразу воспользоваться посылкой сообщений (функцией SendMessage)?


Удачный пример кода есть?


ger_kar писал(а):А почему бы не применить AutoIt Script, язык с VB подобным синтаксисом, простейший по своей сути и специально заточенный как раз для таких целей.


Его можно встроить в VB чтобы расширить функциональность за счет встроенных классов приложения?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: VBScript для автоматизации управления интерфейсом

Сообщение Antonariy » 12.03.2012 (Пн) 11:22

Можно с этого начать. Исходнику 11 лет от роду, нужно допиливать. В текущем виде он перевирает координаты мыши при записи, но старые примеры воспроизводит корректно. И вылетает при окончании записи/воспроизведения.
Вложения
MINIMACROV3.zip
(177.53 Кб) Скачиваний: 102
Лучший способ понять что-то самому — объяснить это другому.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: VBScript для автоматизации управления интерфейсом

Сообщение jangle » 12.03.2012 (Пн) 12:03

Исходник действительно супер! Прямо в тему, спасибо!

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: VBScript для автоматизации управления интерфейсом

Сообщение jangle » 12.03.2012 (Пн) 14:03

Обрубил лишнее топором. Выкинул мусор, устранил вылеты после записи макросов. Вроде заработало как надо.
Но нужно еще надфилями допиливать. Исходник в аттаче может кому-то пригодится.
Вложения
Source_Macro.zip
запись и воспроизведение макросов
(75.79 Кб) Скачиваний: 124

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: VBScript для автоматизации управления интерфейсом

Сообщение ger_kar » 12.03.2012 (Пн) 14:32

jangle писал(а):Его можно встроить в VB чтобы расширить функциональность за счет встроенных классов приложения?
Кстати да, там в дистрибутиве идет ActiveX библиотека которую можно использовать хоть с VB, хоть с VBS. Функциональность этой библиотеки в достаточной реализует средства языка, за исключением тех, которые в библиотеке в принципе реализовать нельзя. Кстати библиотеку можно и отдельно скачать.
Бороться и искать, найти и перепрятать

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: VBScript для автоматизации управления интерфейсом

Сообщение jangle » 12.03.2012 (Пн) 15:07

ger_kar писал(а):Кстати да, там в дистрибутиве идет ActiveX библиотека которую можно использовать хоть с VB, хоть с VBS. Функциональность этой библиотеки в достаточной реализует средства языка, за исключением тех, которые в библиотеке в принципе реализовать нельзя. Кстати библиотеку можно и отдельно скачать.


Что-то мне этот AutoIt не понравился. Какой-то он "самопальный". VBScript или VBA более оптимальный вариант, предпочтительней второй

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: VBScript для автоматизации управления интерфейсом

Сообщение ger_kar » 12.03.2012 (Пн) 15:42

Ну тут на вкус и цвет. А мне Autoit вполне нравится, есть масса задач, которые с ним очень быстро и оптимально решаются. Например, если делать автоустановочные скрипты, то тут ему равных нет. Можно конечно такие и на VB писать. Я как-то пробовал, времени уходит в разы больше.
Бороться и искать, найти и перепрятать

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: VBScript для автоматизации управления интерфейсом

Сообщение jangle » 12.03.2012 (Пн) 16:27

Теперь вопрос по-автоматизации. Можно ли из VB кода, вызывать VBScript функции описанные в коде который загружен в ScriptControl?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: VBScript для автоматизации управления интерфейсом

Сообщение Хакер » 12.03.2012 (Пн) 16:31

Можно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: VBScript для автоматизации управления интерфейсом

Сообщение Antonariy » 12.03.2012 (Пн) 18:39

Ответ очевиден, если посмотреть интерфейс ScriptControl через f2.
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 12

    TopList  
cron