Что нового

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

XevaloO

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

joiner

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

Medic84

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

XevaloO

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

Yashied

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

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]
autoit.gif

madmasles.
 

madmasles

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

Nadin

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