Что нового

[Мышь, клавиатура] Эмуляция сочетаний клавиш Shift + символ

barbos

Новичок
Сообщения
5
Репутация
0
Не могу заставить работать простейший пример. Укажите на ошибку.
По идее это сочетание клавиш Shift+D
Код:
Send("{ShiftDown}")
Send("{d}")
Send("{ShiftUp}")


Даже этот, простой пример из учебника, у меня не работает, выдает "Hello", вместо "HellО".
'+'
Это указывает AutoIt эмулировать клавишу SHIFT, поэтому Send("Hell+o") выполнит ввод текста "HellO".
Команда # requireadmin - не помогает.

Windows 7 32 bit, AutoIt 3.3.8.1
 

AZJIO

Меценат
Меценат
Сообщения
2,878
Репутация
1,194
barbos
d вводит, а что надо? Заглавную может? Укажи D.
 
Автор
B

barbos

Новичок
Сообщения
5
Репутация
0
В том то и проблема, что мне нужно нажать сочетание клавиш Shift+D. В тестовом листе блокнота, должно выдать "D", а в приложении нажать сочетание клавиш.
Не понял, про замену Shift на +. Вот так?
Код:
# requireadmin
Send("{+Down}")
Send("{d}")
Send("{+Up}")

это тоже не пашет :(

Прошу, напишите работающий пример с нажиманием сочетания клавиш Shift+d.
Спасибо
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
:
barbos
Вы учитесь программировать методом тыка? НАжиматие на send откроется русская справка, там есть все ответны по поводу shift ctrl alt и del
 
Автор
B

barbos

Новичок
Сообщения
5
Репутация
0
Господа, я указал в первом посте, что команда из учебника
Это указывает AutoIt эмулировать клавишу SHIFT, поэтому Send("Hell+o") выполнит ввод текста "HellO".
не выдает положенного результата. Именно в ней используется "+", вместо Shift.


Добавлено:
Сообщение автоматически объединено:

mr.Gbabak [?]

По этому коду, нажатия сочетания клавиш "Shift+d" - не происходит :(
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
barbos
Во-первых, для запуска с правами администратора ключевое слово #RequireAdmin нужно писать без пробела.
Во-вторых, запустите следующий скрипт и сообщите результат.
Код:
Opt("WinWaitDelay", 50)
Run("notepad.exe")
$wnd = WinWait("[class:Notepad]")
WinActivate($wnd)
WinWaitActive($wnd)
Send("+d")
 

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
Уважаемый barbos
надо было не ""Shift+d", а именно
Код:
Send ("+d")

Внимательнее читайте подсказки на форуме, и справку. В самом верхнем Вашем скрипте ошибка:
Код:
Send("{ShiftDown}")
Send("{d}") ; так не делают
Send ("d"); вот так правильно
Send("{ShiftUp}")


Хотя понял в чем Ваша ошибка, у Вас в системе язык по умолчанию стоит русский, поэтому скрипт и не работает, сам когда-то сталкивался. Самое простое, что могу посоветовать-для приложений и сочетаний горячих клавиш использовать кириллицу, к примеру
Код:
Send("^в"); это выделит весь документ CTRL+A
Send ("^C"); скопирует выделенное...ну думаю аналогию сами дальше проведете.
; если же надо напечатать что-либо то просто пишите сразу нужным регистром.
 
Автор
B

barbos

Новичок
Сообщения
5
Репутация
0
InnI [?]
barbosВо-первых, для запуска с правами администратора ключевое слово #RequireAdmin нужно писать без пробела.Во-вторых, запустите следующий скрипт и сообщите результат.Код: AutoIt [Выделить]Opt("WinWaitDelay", 50)Run("notepad.exe")$wnd = WinWait("[class:Notepad]")WinActivate($wnd)WinWaitActive($wnd)Send("+d")

Открывается Блокнот и все. Больше никаких действий не происходит.

mr.Gbabak [?]
Хотя понял в чем Ваша ошибка, у Вас в системе язык по умолчанию стоит русский, поэтому скрипт и не работает, сам когда-то сталкивался. Самое простое, что могу посоветовать-для приложений и сочетаний горячих клавиш использовать кириллицу, к примеру
Заработало :smile: Спасибо, а то уже полностью разуверился.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
barbos [?]
Открывается Блокнот и все. Больше никаких действий не происходит.
Чудеса... Если у вас русский по умолчанию - должно "В" напечататься. :scratch:
 
Автор
B

barbos

Новичок
Сообщения
5
Репутация
0
InnI [?]
Чудеса... Если у вас русский по умолчанию - должно "В" напечататься.
think.gif

Никаких чудес.
Должно печататься "d", просто команда выполняется быстрее, чем успевает запуститься Блокнот. Периода ожидания, в вашем варианте скрипта - нет.
 
Верх