Что нового

Проблема с send()

XevaloO

Новичок
Сообщения
28
Репутация
1
Приложение не реагирует на любые команды типа send(), есть предположение, что стоит защита от эмуляции нажатий клавиш, отсюда вопрос, можно ли посредством аутоИТ перейти на более низкий уровень и обойти подобную защиту?
 

joiner

Модератор
Локальный модератор
Сообщения
3 061
Репутация
513
XevaloO применяя команду SEND ты хочешь что сделать? ввести текст или нажать клавишу? для второго есть ControlClick
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 541
Репутация
326
Нет. Ему игра просто не дает сэмулировать нажатия клавиш.
Есть идея отправления нажатий непосредственно через драйвер клавиатуры. Но я не знаю выполнимо ли это. Это всего лишь предположение :whistle:
 
Автор
X

XevaloO

Новичок
Сообщения
28
Репутация
1
Воот о том то я и спрашиваю, можно про это подчитать где-нибудь?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Прочитай эту ветку (начни с конца).
 

vankohi

Извините мои руски
Сообщения
7
Репутация
3
у меня тоже самои проблем.ктото решил?
извините за плохой руски
 

Nadin

Новичок
Сообщения
2
Репутация
0
[Автоматизация] Re: Проблема с send()

Доброго всем времени суток! :smile:

Я совсем новичок в AutoIt. И может мой вопрос не по этой теме, поэтому за ранее извиняюсь.

Помогите, пожалуйста, разобраться. Передо мной стоит совсем простая задача - разработать пакет автоматической (последовательной) установки ПО. В данный момент мы устанавливаем это ПО в несколько этапов, надо просто всё объединить в один экзешник.
Вроде всё получается, но вот столкнулась с одним окном, которое никак не хочет реагировать на команду send(), с остальными окнами этого ПО пока не было ни каких проблем..

Пыталась разными способами:
1. Самый простой
Код:
RunWait("2pdwsetup151.exe /s")
WinWaitActive("AutoPLANT Plant Design V8i x64 - InstallShield Wizard", "&Next >")
Send("!n") ; кнопка next
Send("{Enter}") ;или 
ControlClick("AutoPLANT Drawing Flattener V8i (SELECTseries 3)", "&Next >", "Button3","main",5) ;или - тоже не реагирует :(


2.
Код:
RunWait("3dfsetup151.exe /s")
$TITLE=WinWaitActive("AutoPLANT Drawing Flattener V8i (SELECTseries 3)", "&Next >",10)
if WinActivate ($TITLE) Then  
   while 1
     Send("!n") 
     Sleep(1000)
  WEnd

EndIf


А может быть оно и реагирует, но я делаю что-то не так.. Может проблема в том, что окно становится активным, а кнопка "Next" не сразу.. и я пытаюсь ее нажимать, хотя она не активная. И этот момент я не могу отследить..

Информация с Window Info:
>>>> Window <<<<
Title: AutoPLANT Drawing Flattener V8i (SELECTseries 3)
Class: MsiDialogCloseClass
Position: 708, 329
Size: 504, 382
Style: 0x14C80000
ExStyle: 0x00040100
Handle: 0x0000000000220448

>>>> Control <<<<
Class: Static
Instance: 4
ClassnameNN: Static4
Name:
Advanced (Class): [CLASS:Static; INSTANCE:4]
ID: 613
Text: NewBinary5
Position: 0, 0
Size: 498, 312
ControlClick Coords: 299, 251
Style: 0x5802020E
ExStyle: 0x00000000
Handle: 0x00000000002B0436

>>>> Mouse <<<<
Position: 1010, 605
Cursor ID: 0
Color: 0xFFFFFF

>>>> StatusBar <<<<


Что еще можно сделать и как проверить, идет выполнение команды или нет? Пробовала через Debugger, не получилось.
Спасибо!

Используйте для AutoIt кода тег [autoit]

madmasles.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
vankohi,
ИМХО, RunWait() ждет завершения программы и, поэтому, нет реакции на окна.
 

Nadin

Новичок
Сообщения
2
Репутация
0
madmasles, спасибо! :smile:
Действительно оказалась в этом проблема, но тогда подскажите, пожалуйста, как в скрипте правильно использовать, идущие подряд run'ы.
Мне важно, чтобы одна программа запускалась в след за другой по очереди. Наверное ставить условия на проверку или использовать sleep?
 
Верх