Что нового

Ограничения приложений? Можно активировать но управлять нельзя?

Zoringer

Новичок
Сообщения
3
Репутация
0
Всем привет!

Не подскажете есть ли в Autoit какие то ограничения по работе с приложениями?
Например мне надо направить сочетание клавиш ^S (сохранить все).
Окно приложения активируется и скрипт выходит без ошибок, но Ctrl+S не передается.

WinActivate("[CLASS:AmiBrokerMainFrameClass]", "")
WinWaitActive("[CLASS:AmiBrokerMainFrameClass]", "")

Send("^S",0)
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
1. Если приложение работает с правами администратора, то скрипт также должен быть запущен с правами администратора
Код:
#RequireAdmin

2. Если в системе по умолчанию установлена русская раскладка, то её нужно сменить на английскую. Либо попробовать отправить русскую клавишу
Код:
Send("^ы")

3. В функции Send желательно соблюдать регистр, т.к. "S" может быть интерпретирована, как "shift + s". В результате аргумент будет "^+s".
 
Автор
Z

Zoringer

Новичок
Сообщения
3
Репутация
0
Огромное спасибо! Действительно маленькими буквами надо было и заодно оставил на русском, если раскладка случайно будет оставлена на русском.
Попытался дальше закрыть приложение через пример, но пишет что не найдено окно.

Код:
If WinClose("CLASS:AmiBrokerMainFrameClass]", "") Then
        MsgBox($MB_SYSTEMMODAL, "", "Window closed")
    Else
        MsgBox($MB_SYSTEMMODAL + $MB_ICONERROR, "Error", "Window not Found")
    EndIf


Хотелось бы разобраться, почему а пока временно поставил отправку ALT-F4
Код:
Send("!+{F4}",0)
 
Автор
Z

Zoringer

Новичок
Сообщения
3
Репутация
0
Квадратную скобку пропустили перед CLASS.
Точно! Заработало!!! Спасибо!

А я вижу в скобках "Alt Shift F4".
Вот тут я сам удивляюсь, т.к. он закрывает приложение и с большим F и с маленьким. А сохранять по команде ^S не хочет :fool: . Спасибо!
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
с большим F и с маленьким
А чем большая функциональная клавиша от маленькой отличается?
сохранять по команде ^S не хочет
Alt+F4 обрабатывает система, а Ctrl+s - приложение. Значит в Microsoft предусмотрели нажатый Shift, а в вашем приложении - нет.
 
Верх