Что нового

MouseClick работает НЕ в любой версии Винды!

Boris76

Новичок
Сообщения
10
Репутация
0
Доброго времени суток всем!
Кто-нибудь сталкивался с такой проблемой?

В Autoit-скрипте не отрабатывают функции, связанные с мышью,
если скрипт выполняется не под ХР.

Скрипт очень простой:
- запускается одно приложение,
- ожидается открытие его главного окна,
- определяются координаты этого окна,
- относительно этих координат вычисляется точка,
где надо кликнуть мышью (на кнопку),
- MouseClick("left").

Последний пункт НЕ отрабатывает, если скрипт выполняется
на следующих ОСях:
- Windows-7 Prof;
- MS Server-2008;
- виртуальный MS Server-2008 (RDP-session).
Хотя хэндл окна и координаты не нулевые.

Все системы лицензионные и обновлены по максимуму.

На XP SP3 всё нормально отрабатывает! Специально сделал
одну ХР-шку на виртуалке - и там работает! И в сеансе
RDP на XP-шке всё прекрасно работает! Причём разрешение
экрана во всех случаях разное, но скрипт без каких-либо
изменений работает! Ниже выкладываю таблицу разрешений
экрана для всех испробованных случаев.

Что пробовал:
- полную форму MouseClick, когда указаны координаты точки
и сколько кликов (по 1 и по 2 клика пробовал);
- перед MouseClick делал MouseMove к заданной точке -мышь
не движется (если ось не ХР);
- менял скорость движения мыши (если меньше 100, то можно
добиться, что и на ХР двигаться не будет);
- ControlClick для той кнопки на главном окне (аналогично:
на ХР работает, на других осях - нет!);
- поскольку сервера все 64-битные пробовал переустанавливать
AutoIt как х64 и как х86, компилировал ехе-шники в формате х64
и х86 (перебрал все варианты на всех этих системах);
- задавал вопрос на англоязычном форуме на сайте разработчиков,
они ответили ерунду:
что эти функции (с мышью которые работают) сильно зависят
от разрешения экрана! Ниже привожу таблицу, в которой видно,
что на ХР-шке работает и при 800х600х32, и при 1024х768х16,
и при 1440х900х32.
Тем не менее скачал хорошую прогу dc.exe (Display Changer) и
пытался изменить разрешение экрана на моих виртуальных
серверах (их у меня два) - не меняет, говорит драйвер графического
устройства failed для указанного режима.
А техподдержка сказала, что для сеанса RDP эти параметры значения
не имеют.
- запускал скрипт на виртуальных серверах через назначенные задания,
чтобы он отработал без сеанса RDP - НЕ отрабатывает!
- перед входом по RDP задавал разные значения разрешений экрана,
не влияют они (т.е. на ХР-шке как работало, так и работает, а
на других - НЕ работает).

Что ещё попробовать не знаю, все мозги уже сломал! Может, какая-то
служба должна быть включена? Или наоборот, отключена?

Вот текст скрипта:
--------------------
Код:
Global $size
Global $hWnd

;Opt("GUIOnEventMode", 1)
Opt("WindowTitleMatchMode",3)

Run("C:\AA_v3.exe")	; start Ammyy-application
Sleep (5000)
   $hWnd = WinWaitActive("Ammyy Admin v3.0 - Free", "", 10)
   $size = WinGetPos($hWnd)
;   MsgBox(0, "Active window stats (x,y,width,height):", $size[0] & " " & $size[1] & " " & $size[2] & " " & $size[3], 5)
;   MsgBox (0, "hWnd=", $hWnd, 5)
   MouseMove ( $size[0]+300, $size[1]+240, 100 )	; button "connect"
   MouseClick ( "left" )
;   ControlClick ("Ammyy Admin v3.0 - Free", "", 1507 )	; 1507 - ID of button "Connect"
   Sleep (5000)

----------------------------------------------------

Вот таблица разрешений экрана для разных случаев:
1. Мой комп № 1 (XP SP3) 1440x900x32bit - работают (оба варианта: MouseClick и ControlClick)
2. Мой комп № 1 (XP SP3) (RDP-session):1024x768x16bit - работают оба варианта

3. Мой комп № 2 (Windows-7): 1024x768x16bit - не работают оба варианта
4. 1280x1024x32bit - не работают оба варианта

5. Комп моего друга № 1 (XP SP3): 1280x1024x32bit - работают оба варианта
6. Комп моего друга № 2 (Windows-7): 1024x768x32bit - не работают оба варианта

7. виртуальный Server-2008 № 1 (RDP-session): 1440x900х16 - не работают оба варианта
(но при 1-м запуске неделю назад мышь двигалась и скрипт работал!)
8. виртуальный Server-2008 № 2 (RDP-session): 1440x900x16bit - не работают оба варианта

9. гостевая XP SP3 (на хостовой Win7): 800x600x32bit - работают оба варианта
10. гостевая XP SP3 (RDP-session): 800x600x32bit - работают оба варианта

Уговорил другого своего друга (сисадмин) проверить мой скрипт у него на работе на реальном серваке:
11. реальный Server-2008: 1024x768x32bit - не работают оба варианта
12. реальный Server2008 (RDP-session): 1024x768x32bit - не работают оба варианта
------------------------------------------------------------------------------------------------------------

При анализе таблицы видно, что:
- на ХР-шке работает при разных разрешениях;
- на других осях НЕ работает (тоже при разных разрешениях).

Обращаюсь к корифеям этого форума: подскажите, в какую сторону копать?
Спасибо.

:stars:
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
в какую сторону копать?
Возможно в эту (взято из справки):
Код:
; Этот скрипт требует наличия полных прав администратора 
#RequireAdmin 
MsgBox(0, "Инфо", "У этого скрипта есть права администратора! ")

Заключи свой код в посте в тэги autoit
 
Автор
B

Boris76

Новичок
Сообщения
10
Репутация
0
Нашёл в справке про #RequireAdmin, сделал как там показано.
Не помогло. Тогда скомпилировал ехе-шник и сделал "Run as Administrator" -
не помогло. Тогда запустил командную строку от имени администратора
(хотя я и так всегда вхожу как админ), встал в директорию со своим
скриптом и запустил ехе-шник - не помогло!
Повторил все эти действия для варианта с ControlClick - не помогло.
Это было на Win-7 сначала. Потом проделал всё то же самое на
виртуальном сервере-2008 - НЕ работают команды, связанные с мышью!
Остальные работают! Кстати, если бы причина была в правах админа,
остальные команды тоже не работали бы?
Также пробовал отрубать антивирус и FW, но это уже явные "танцы с
бубном"...
Ещё попробовал ставить два тэга: один - первой строкой скрипта,
другой - последней. С тем же результатом.

Ещё идеи есть?
Может, всё же служба какая-то? Типа DDE?
:scratch:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Boris76

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Автор
B

Boris76

Новичок
Сообщения
10
Репутация
0
Извиняюсь, виноват, не слишком внимательно прочитал правила форума.
Теперь понял, о каких тэгах шла речь. Буду заключать в тэги.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Boris76
на будущее это хорошо, но начни пож-та с сообщения в шапке темы
 
Автор
B

Boris76

Новичок
Сообщения
10
Репутация
0
Надо укоротить название темы? Сколько слов оставить?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Boris76
Вас просят отредактировать своё первое сообщение. Нужно код скрипта заключить в теги [ autoit ][ /autoit ] (без пробелов) - третья кнопка слева во втором ряду.
 
Автор
B

Boris76

Новичок
Сообщения
10
Репутация
0
Я не против чтобы отредактировать, могу и спойлеров наставить. Но я не знал, что можно редактировать
то, что уже отправлено. И не могу найти эти "ряды кнопок"! Пожалуйста, ткните носом.



Добавлено:
Сообщение автоматически объединено:

кнопку для тэга [ autoit ] нашёл. А как открыть первый пост для редактирования?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Boris76 [?]
OffTopic:
Пожалуйста, ткните носом
У меня на IE8 у каждого моего сообщения в правом верхнем углу есть ссылка "Изменить". При нажатии на неё открывается новая вкладка с текстом сообщения. Над текстом ряды кнопок и смайлики.
 

Dm666

Осваивающий
Сообщения
221
Репутация
48
Boris76
Пользуюсь Win7 x64. Имеется несколько скриптов использующих MouseClick - все прекрасно работают.
Попробовал приведенный вами скрипт - действительно не отрабатывает.

Отсюда вывод, что MouseClick здесь ни при чем и проблема в самом AmmyyAdmin. Путем нехитрых тестов выяснил, что когда его окно активно - все мышиные функции перестают работать. Вряд ли это лечится.

PS: То же самое наблюдается и при активном окне диспетчера задач.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Dm666 [?]
проблема в самом AmmyyAdmin
Проблема с Ammyy Admin в том, что она запускается под учётной записью "система", а скрипт под учётной записью пользователя. В настройках Ammyy Admin на вкладке "Общие" отключите опцию "Запускать под системным аккаунтом на Windows Vista/7/2003/2008" (это для русской версии 3.1) и всё заработает.
 

Dm666

Осваивающий
Сообщения
221
Репутация
48
InnI [?]
Проблема с Ammyy Admin в том, что она запускается под учётной записью "система", а скрипт под учётной записью пользователя. В настройках Ammyy Admin на вкладке "Общие" отключите опцию "Запускать под системным аккаунтом на Windows Vista/7/2003/2008" (это для русской версии 3.1) и всё заработает.
Все так и есть! Спасибо, заработало.
 
Верх