| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Имитация действий в wxWidgets |
| Автор: disputant 13.4.2016, 16:04 | ||
| Добрый день! Есть такая проблема. Программа, написана на Visual C++ с использованием wxWidgets. Задача: сымитировать рабочую сессию. Т.е. переписать программу так, чтобы можно было задать что-то типа описания действий, и программа запускается, и начинает автоматически нажимать кнопочки, выбирать пункты меню и т.п. Основная проблема — как это делается? Требуется, чтобы при нажатии кнопки отработали все действия из соответствующего обработчика. Как я понимаю, надо создать wxCommandEvent, и как-то его передать обработчику. Пробовал в главном окне что-то типа для кнопки-переключателя
Ничего не сработало. Как это делать правильно, и второй вопрос — где? В какой функции? Чтоб можно было программу, грубо говоря, из пакетного файла запустить, чтоб она сама все посчитала и закрылась, без малейшего вмешательства человека. |
| Автор: Amp 14.4.2016, 12:56 |
| Тебе надо будет завести отдельный поток, который будет находить эвентхэндлеры (окна, диалоги, панели, кнопки) и посылать им сообщения. К примеру находится кнопка по какому-то признаку (wxWindow::FindWindow), посылается ей эвент, затем ищется диалог, который появился после нажатия, и происходит работа уже с ним. Хорошо, если тебе вдруг известны идентификаторы виджетов. Тонкостей там очень много. Главный вопрос - зачем тебе все это? Тестирование UI? Автоматизация действий? Может в твоем случае проще будет взять стороннее приложение типа AutoIt. |