Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Эмуляция клавиатурных нажатий (LWINDOWN+R) (http://forum.oszone.net/showthread.php?t=173419)

avmir 17-04-2010 23:16 1395134

Эмуляция клавиатурных нажатий (LWINDOWN+R)
 
В справке по AutoIt -> Указатель функций -> Эмуляция клавиатурных нажатий в конце топика есть пример

Код:

Send("#r")
WinWaitActive("Run")
Send("notepad.exe{Enter}")
WinWaitActive("Untitled -")
Send("Today's time/date is {F5}")

который не работает. Совершенно ясно, что нужно поменять для русскоязычного варианта XP:

Код:

Send("#r")
WinWaitActive("Выполнить")
Send("notepad.exe{Enter}")
WinWaitActive("Безымянный -")
Send("Today's time/date is {F5}")

Но не понятно, как работает первая строка примера. В том же топике -

Цитата:

'#'
Этот символ используется в качестве символа простого разделения текста для облегчения чтения.
Т.е., как я понимаю генерируется нажатие клавиши {R}. Между тем для вызова диалогового окна "Выполнить"
нужно нажать клавиши LWIN+R.

Пробовал заменить первую строку примера на

1. Send("{LWIN}r")
2. Send("{LWINDOWN}r")
3. Send("{LWINDOWN}r{LWINUP}")

результат - нулевой...
Подскажите пожалуйста, в чем я ошибаюсь?

zonderz 17-04-2010 23:36 1395143

avmir,

Цитата:

Цитата avmir
Совершенно ясно, что нужно поменять для русскоязычного варианта XP: »

Цитата:

Цитата avmir
WinWaitActive("Выполнить") »

у вас ОС какая? в русской xp sp2 например там другая надпись

Цитата:

Цитата avmir
Но не понятно, как работает первая строка примера. В том же топике - »

как? просто! - The hash now sends a Windows keystroke; therefore, Send("#r") would send Win+r which launches the Run dialog box.

ЧТО не понятно-то?? что такое символ комментирования или что?

работа этого кода зависит от:
локали, текущего включенного языка и раскладки, версии ОС

у меня xpsp2en код работает, переключаю язык - нет
в висте ру в любой раскладке (ваш код) работает

хотите подогнать скрипт под все ОС? :) ню-ню

avmir 18-04-2010 14:50 1395545

Цитата:

Цитата zonderz
хотите подогнать скрипт под все ОС »

Я не хочу
Хотя бы, потому, что только начал знакомство с AutoIt. :)

zonderz, спасибо! Установка английского по-умолчанию - помогла.
А нет ли варианта менять язык прямо в скрипте?
Я попробовал через Send сэмулировать нажатие Shift+Alt - не помогло...

P.S. Интересно, что нажатие LWIN+R работает при любой раскладке. Как еще можно эмулировать их нажатие?

Luck_DMST 11-02-2011 14:40 1610288

Я решил проблему так, может быть и глупо, но выход)) (Ось: Win7)
Код:

; ----------Смена языка на Английский по-умолчанию----------
$win=WinExists ("Выполнить")
Send ("#к")
if $win=0 Then
        Send ("#r")
EndIf
       
WinWaitActive("Выполнить")
Sleep (100)
Send ("{BS}")
Send("{ASC 099}{ASC 111}{ASC 110}{ASC 116}{ASC 114}{ASC 111}{ASC 108}{ASC 032}{ASC 105}{ASC 110}{ASC 116}{ASC 108}{ASC 046}{ASC 099}{ASC 112}{ASC 108}{ASC 044}{ASC 044}{ASC 050}{Enter}")
WinWaitActive("Язык и региональные стандарты")
Send ("{ENTER}")
WinWaitActive("Языки и службы текстового ввода")
Send ("{UP}")
Sleep (200)
Send ("{ENTER}")
WinWaitActive("Язык и региональные стандарты")
Send ("{ESC}")
;-----------------------------------------------------------



Время: 21:21.

Время: 21:21.
© OSzone.net 2001-