2013-06-13 2 views
1

Я запускаю файл «autoit3.chm». Когда он работает, я хотел бы, чтобы послать клавишу со стрелкой вниз, но он не работает:AutoIt: Отправить ("{DOWN}") не работает

$file = FileGetShortName("C:\Users\PHSD100-SIC\Desktop\AutoIt3.chm") 
Run(@ComSpec & " /c start " & $file) 
WinWaitActive("AutoIT Help") 
Send("{DOWN}") 
+1

* не работает * вы имеете в виду никакого ответа? – Raptor

+0

'send (" {DOWN} ")' не работает – NullReferenceException

+1

Ну, это сработало бы, если бы скрипт достиг бы этой строки кода ... Но посмотрите на мой ответ ниже ... вы опечатали ** AutoIt ** – Samoth

ответ

5

Ну, вы просто ждали неправильного заголовка окна ... Попробуйте WinWaitActive("AutoIt Help") и он будет работать .. Ваш «T« должен быть «t» ...
Чтобы узнать это, вам просто нужно проверить свой вывод сценария и после того, как CHM-файл был открыт, вы увидите, что ваш скрипт Все еще работает. Но вы ожидали, что он выполнит команду Send(...), а затем прекратит работу. Поэтому ваш скрипт должен все еще ожидать появления ожидаемого окна. Что приведет вас к двойному проверке названия вашего окна, возможно, вы скопируете заголовок окна с помощью AutoIt Window Info Tool, и это покажет вашу ошибку. Исправь это. Viola, be happy =)

Кроме того: сначала вам не нужно запускать командную строку, вы можете позвонить непосредственно ShellExecute($file).

+0

Я набрал письмо в верхнем регистре, превратив его в нижний регистр, решив проблему - спасибо! – CoDEmanX

1

Если вы используете инструмент AutoIt Window Info, это поможет с этими проблемами, а также неплохо провести отладку с помощью ConsoleWrite(...).

Например, простой, как и раньше. Однако вы, вероятно, должны использовать таймауты или переменные и использовать возврат для успеха/неудачи.

WinWaitActive("Window") 
ConsoleWrite("Success") 
Send("{DOWN}") 
ConsoleWrite("Success") 
+0

Вы даже можете использовать 'ConsoleWrite (WinWaitActive (« Window ») и @CR)', чтобы увидеть код возврата, а затем задаться вопросом, почему этот вывод никогда не был написан ;-) – Samoth

-1

Используйте следующий синтаксис для вниз ключа введите

Send("{DOWN 2}") 

и подобное для Up ключа введите

Send("{UP 2}") 
Смежные вопросы