![]() |
Как заставить на VB 6 мышь имитировать нажатие?
Мне нужно чтобы мышь вне рабочей формы, имитировала нажатие кнопки. т.е. если есть Form.exe открываем и мышь имитирует нажатие ЛКМ. не только в самой форме но и на рабочем столе куда не передвинешь мышь, она постоянно кликает (надеюсь достпуно изложил суть. :) )
|
Будет более понятно, если вы изложите практическую цель такой имитиации. Т.е. смысл, для чего это нужно.
|
приведу такой пример:
включается компьютер и выходит обычное извещение об ошибке, прочитав нажимаете "ОК", окошко закрывается. Но через 5 мин оно опять выходит, и для того чтобы его закрыть вам нужно нажать "ОК" (после чего как вы догадываетесь процедура повториться). Вот мне и нужно (очень нужно) чтобы мышь, вне окна name.exe (созданный в VB 6) имитировала мои клики. (т.е. я оставлю комп влюченым, курсор мыши будет стоять на том месте где как раз появиться окошко с кнопкой "ОК" и будет кликать. ) |
Возьмите AutoIt, в комплекте идет программа Au3Record, для записи действий
ждете окно ошибки, включаете запись, нажимаете кнопку, получаете скрипт и делаете действие в бесконечном цикле |
Да, такое возможно. Делал в свое время подобную программу, но исходников уже нет. Средствами VBA этого не сделать, нужно использовать API Windows. Алгоритм примерно следующий:
Создаете в своей программе таймер с интервалом ~100 мс. В таймере срабатывает функция, которая ищет нужное вам окно по уникальному заголовку (если он есть) или по имени его класса. Получаете его Хэндел. Если окно найдено, по его Хэнделу ищите в нем дочернее окно (кнопку) по имени класса и определяете его Хэндел. Имя класса окна можно определить любым оконным шпионом, оно в отличие от Хендла всегда неизменно. Затем имея Хэндел кнопки, можно определить ее координаты на экране монитора X и Y. Имея координаты окна, переносим на него мышь и имитируем клик. Если код будет использоваться на одном ПК, окно выскакивает в одном и том же месте и разрешение монитора меняться не будет, значения X и Y можно не искать а жестко прописать в коде программы, предварительно определив их оконным шпионом. Вот сам код имитации клика, написано на VB6 Код:
Для имитации нажатия на клавишу мыши служит API-функция mouse_event |
Время: 12:45. |
Время: 12:45.
© OSzone.net 2001-