Автор Тема: [Элементы GUI] Нажатие кнопки активного окна, не реагирует.  (Прочитано 4161 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nikomx [?]

  • Новичок
  • *
  • Сообщений: 4
  • Репутация: 0
    • Награды
Добрый день.
Суть в том что нужно автоматизировать много много телодвижений в цикле, что в принципе реализовано, но есть загвоздка. Скрипт по нажатию одной кнопки в одном диалоговом окне не срабатыват, и пришлось реализовать по маузклик и координаты, однако такое решение не подходит для работы с разными разрешениями экрана. На работе если я запущу скрипт, то дома на широкоэкраннике координаты уже не те, а окно тоже не спозиционирует, оно строго само себя ставит по центру экрана.

Вообщем сейчас код такой:
Код: AutoIt [Выделить]
;Первая база

Run("C:\mult_so5\copy_up.bat")
Run("C:\mult_so5\Swnd5M.exe")
WinWaitActive("Выбор Базы")
ControlClick("Выбор Базы","Запустить Патч Супер Окнон","ThunderRT6CommandButton5")
Sleep(15000)
$title = WinGetTitle("[active]")
WinWaitActive($title) ;
sleep(1000)
MouseClick( "left",540 ,560, 1 )
Sleep(1000)
MouseClick( "left",25 ,30, 1 )
MouseClick( "left",40 ,145, 1 )
WinWaitActive("Обмен данными с отделами")
MouseClick( "left",590 ,625, 1 ) ;Кнопка обмен, ИМЕННО ЭТА КНОПКА не пашет контролом клик
WinWaitActive($title) ;
MouseClick( "left",10 ,11, 1 ) ;Кнопка системная
Sleep(500)
MouseClick( "left",14 ,135, 1 ) ;Кнопка закрытия
Sleep(1500)

; ******* база 2 - 99

For $i = 1 to 98 Step 1
Run("C:\mult_so5\copy_up.bat")
Run("C:\mult_so5\Swnd5M.exe")
WinWaitActive("Выбор Базы")
Sleep(500)
Send("{DOWN 1}")    ;Следующая локальная база
Sleep(500)
ControlClick("Выбор Базы","Запустить Патч Супер Окнон","ThunderRT6CommandButton5")
Sleep(15000)
$title = WinGetTitle("[active]")
WinWaitActive($title)
sleep(1000)
MouseClick( "left",540 ,560, 1 )
Sleep(1000)
MouseClick( "left",25 ,30, 1 )
MouseClick( "left",40 ,145, 1 )
WinWaitActive("Обмен данными с отделами")
MouseClick( "left",590 ,625, 1 ) ;Кнопка обмен, именно эта кнопка не пашет контроломклик
WinWaitActive($title)
MouseClick( "left",10 ,11, 1 ) ;Кнопка системная
Sleep(500)
MouseClick( "left",14 ,135, 1 ) ;Кнопка закрытия
Sleep(1500)
Next


Пробовал нажатие этой кнопки вот так:
Код: AutoIt [Выделить]
ControlClick("Обмен данными с отделами","Через дискету","TKPanel2")

Скрипт просто висит на выполнении и как будто чего то ждет, но кнопку не нажимает..
Инфа взята из wininfo
Скриншот:
ссылка:http://floomby.ru/content/osKVrwApd0/ [nonactive]
Что посоветуете? Спасибо.

Русское сообщество AutoIt


Оффлайн VladUs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 618
  • Репутация: 180
  • Пол: Мужской
    • Награды
nikomx  [?]
Цитировать
однако такое решение не подходит для работы с разными разрешениями экрана.

Попробуйте использовать опцию
Код: AutoIt [Выделить]
Opt("MouseCoordMode", 0)

Система отсчета координат указателя мыши в соответствующих функциях - абсолютные или относительные по отношению к текущему активному окну:

0 = относительные координаты активного окна
1 = абсолютные координаты экрана (стандартное значение).
2 = относительные координаты клиентской области активного окна
Вам необходимо брать координаты относительно активного окна

Делай что должен и  будь что будет

Оффлайн nikomx [?]

  • Новичок
  • *
  • Сообщений: 4

  • Автор темы
  • Репутация: 0
    • Награды
Цитировать
Попробуйте использовать опцию
Код: AutoIt [Выделить]
Opt("MouseCoordMode", 0)
Система отсчета координат указателя мыши в соответствующих функциях - абсолютные или относительные по отношению к текущему активному окну:
Отличная мысль.. Думаю как вариант подойдет))

Оффлайн nikomx [?]

  • Новичок
  • *
  • Сообщений: 4

  • Автор темы
  • Репутация: 0
    • Награды
Что то я недогоняю как правильно воспользоваться в таком случае ControlClick-ом,Вот скрин wininfo этой кнопки которую надо нажать: ссылка:http://floomby.ru/content/CFpsd9MR60/ [nonactive]
Можете подсказать как будет выглядить строка контролклик?
Естественно перед ней использую опцию Opt("MouseCoordMode", 0)

Русское сообщество AutoIt

Re: [Элементы GUI] Нажатие кнопки активного окна, не реагирует.
« Ответ #3 Отправлен: Апрель 19, 2011, 14:09:42 »

Оффлайн VladUs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 618
  • Репутация: 180
  • Пол: Мужской
    • Награды
Для начала в программе wininfo  выберите options - Coord mode - Windows
Это для того чтобы программа wininfo сообщала координаты относительно  окна
Далее смотрите координаты
>>>> Mouse <<<<
Position:   286, 56        (у Вас будут другие)
Код: AutoIt [Выделить]
MouseClick( "left",286 ,56, 1 )


Оффлайн nikomx [?]

  • Новичок
  • *
  • Сообщений: 4

  • Автор темы
  • Репутация: 0
    • Награды
Спасибо за оперативную помощь!
Тему можно закрыть.

Русское сообщество AutoIt

Re: [Элементы GUI] Нажатие кнопки активного окна, не реагирует.
« Ответ #5 Отправлен: Апрель 19, 2011, 14:55:36 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
3332 Просмотров
Последний ответ Апрель 05, 2011, 07:28:36
от NoMad73rus
13 Ответов
4928 Просмотров
Последний ответ Август 29, 2011, 21:00:21
от madmasles
5 Ответов
6778 Просмотров
Последний ответ Апрель 25, 2014, 09:35:09
от madmasles
3 Ответов
4321 Просмотров
Последний ответ Декабрь 28, 2011, 20:55:38
от vadimkou
10 Ответов
4348 Просмотров
Последний ответ Январь 27, 2017, 15:48:22
от Шурик
1 Ответов
2753 Просмотров
Последний ответ Апрель 04, 2012, 20:37:43
от madmasles
4 Ответов
1970 Просмотров
Последний ответ Февраль 02, 2013, 23:20:45
от Zaramot
6 Ответов
2484 Просмотров
Последний ответ Июль 26, 2013, 16:14:03
от madmasles
16 Ответов
2965 Просмотров
Последний ответ Июнь 10, 2015, 17:26:25
от InnI
1 Ответов
326 Просмотров
Последний ответ Январь 11, 2017, 18:43:09
от Dessan