Показать полную графическую версию : Не работают функции send() и mouseclick()
Всем доброго дня!
Такая проблема, ставлю последнюю версию AutoIt на Vista и у меня ни в одном скрипте не работают функции send() и mouseclick().
Например, простейший скрипт из примера:
Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("This is some text.")
WinClose("Untitled - Notepad")
WinWaitActive("Notepad", "Do you want to save")
Send("!n")
При запуске открывает блокнот, делает его активны и скрипт паузится. Так происходит со всеми скриптами, они вполняются только до этих функций - что делать не знаю, я уже на другой комп ставил, там тоже виста, но вроде она поддерживается.
Пробовал в начало скрипта добавлять #requireadmin, но тоже не помогает :(
При запуске открывает блокнот, делает его активны и скрипт паузится »
И это повод усомниться в работоспособности функции Send() и MouseClick()?
Там просто WinWaitActivate() ждёт окно с заголовком "Untitled - Notepad", у вас же видимо другой заголовок окна блокнота («Безымянный»?).
WinWaitActive("Notepad", "Do you want to save")
Ага, и всплывающее сообщение тоже на русском.
И это повод усомниться в работоспособности функции Send() и MouseClick()?
Там просто WinWaitActivate() ждёт окно с заголовком "Untitled - Notepad", у вас же видимо другой заголовок окна блокнота («Безымянный»?). »
хек...да, стыдно, этот пример не удачный, вы правы, у блокнота другое окно, я от растройства совсем мозг потерял.
всё началось с того, что я захотел написать скрипт для полноэкранного приложения, есть такая карточная игра онлайн MTGO, может кто знает, но не суть. И проблема стала возникать в том, что мышка пока игра не запущена слушалась простых команда на перемещение по экрану, а когда разворачивал игру те же команды не выполняются, я проверял координаты до команды перемещения и после...
Сейчас на работе, вернусь домой ещё раз проверю, внимательно, может опять горесуперпрограмер, блин, напутал в скриптах...
Belfigor
04-08-2009, 16:19
Если игра не браузерная, то вполне вероятно что клиент просто блокирует скрипт.
Lubitel Softa
04-08-2009, 16:25
Не для протокола, AutoIt 3.3.0.0 и его откомпилированные *.exe отлично работают и под Vista, и под Windows 7 - проверенно лично :victory:
Lubitel Softa, И как оно связано с данной темой?
Lubitel Softa
04-08-2009, 17:06
ставлю последнюю версию AutoIt на Vista и у меня ни в одном скрипте не работают »
там тоже виста, но вроде она поддерживается. »
Lubitel Softa, Сорри, пропустил это :)
Тогда ещё добавлю. AutoIt поддерживается на всех Windows кроме 9.x., т.е его нативные функции должны работать безпроблемно.
В первом посте, как и было сказано выше, AutoIt не причём - я облажался с руским блокнотом.
Теперь в продолжение темы.
Вот тестовый скрипт:
WinActivate("Magic Online v3.0.93.2");
Sleep(1000);
MouseMove(300, 300, 100);
При любом другом активном окне мышка движется нормально, но стоит только развернуть окно игры, причём оно не на полный экран, а как обычное окно, т.е. панель задач внизу видна - и всё. Скрипт запускается, но курсор мыши стоит на месте :(
Видимо действительно есть какой-то блок, но его скорее всего обходят, потому что я не нашёл упоминания на форумах что есть проблемы.
Подскажите, в чём может быть проблема и как её побороть?
P.S. Скомпилированный экзешник тоже не работает как надо.
Видимо действительно есть какой-то блок »
Тут видимо не блок, а скорее свой курсор и его обработчик. А что если после выполнения данного скрипта свернуть окно игры, курсор (системный) на том же месте?
Тут видимо не блок, а скорее свой курсор и его обработчик. »
Да, скорее всего, потому что всё исполнение игры оформленно в другом стиле, можно тут посмотреть на скриншот:
http://www.wizards.com/magiconline/images/SS-CollectionZoom_lg.jpg
Я к сожалению не помню, не обращал внимание, за долгое время глаза привыкли, смогу только вечером посмотреть точно, но больше уверен, что он другой.
А что если после выполнения данного скрипта свернуть окно игры, курсор (системный) на том же месте? »
Да, курсор стоит на месте. Я дополнительно вставлял в код строки запоминающие позицию курсора до движения и после - не меняются. Пробовал использовать команду mouseclick() в нужном месте окна, без движения, но тоже ничего не происходит. При этом скрипт не паузится, доходит до конца. Также если поверх окна с игрой открыть и сделать активным другое, например, окно с редактором скриптов, то мышка движется нормально, как и положенно.
Никто не знает, в чём может быть проблема и как её обойти?
Проверил, курсор не меняется по виду.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.