1 (изменено: Pokerist, 2012-12-26 02:40:44)

Тема: AHK: Отправка русских букв в НЕрусской раскладке.

Нужно отправить в Paint  в русском Windows на запрос Сохранить отправить  ALT + русскую С.
Send, {AltDown}{vk43}{AltUp} не срабатывает, наверное потому, что раскладка по умолчанию НЕрусская и отсылка идёт латинской С.

Если вместо vk43 втавить русскую с, то тоже не срабатывает.

Как вообще правильно делаются такие вещи?

2

Re: AHK: Отправка русских букв в НЕрусской раскладке.

Send, {AltDown}{vk43}{AltUp}

Так тут ошибка

Send, {Alt Down}{vk43}{Alt Up}

Но наверно проще:

Send, !{vk43} 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Отправка русских букв в НЕрусской раскладке.

Почему не Ctrl-S?

4

Re: AHK: Отправка русских букв в НЕрусской раскладке.

wisgest пишет:

Почему не Ctrl-S?

  Я сохраняю как jpg.

5

Re: AHK: Отправка русских букв в НЕрусской раскладке.

serzh82saratov пишет:
Send, {AltDown}{vk43}{AltUp}

Так тут ошибка

Send, {Alt Down}{vk43}{Alt Up}

Но наверно проще:

Send, !{vk43} 

  Не работает.

6

Re: AHK: Отправка русских букв в НЕрусской раскладке.

WinMenuSelectItem

7

Re: AHK: Отправка русских букв в НЕрусской раскладке.

creature.ws пишет:

WinMenuSelectItem

Я так и пытался сначала, когда не смог поймать нужный код WM_COMMAND, но почему-то тоже не получилось.  Вот фрагмент кода с форума, который я пытаюсь приспособить.



^t::
clip_save := ClipboardAll ; сохраняем клипбоард 
ClipWait, 1
Send, {AltDown}{PRINTSCREEN}{AltUp} ; снимок окна 
;создаём пустой файл
name_f = %A_Now%
FileAppend,, D:\test\%name_f%.jpg

;открываем пустой файл в скрытом окне Paint
Run, mspaint D:\test\%name_f%.jpg
;ждём запуска Paint
WinWait, %name_f%.jpg - Paint

;команда меню "Правка" - "Вставить"
PostMessage, 0x111, 57637, 0, , %name_f%.jpg - Paint

WinMenuSelectItem, %name_f%.jpg - Paint,, 1&, 4&,2&
return



Вот картинки.
http://data1.floomby.com/files/share/25_12_2012/Wsb47Jwv5kmgBqolSzqTpQ.png

http://data1.floomby.com/files/share/25_12_2012/rvIMacveyUypBH4GAd8YhQ.png

Всё срабатывает вплоть до  WinMenuSelectItem.  Что я в него не так вписал?



И, кроме этого, всё-таки очень хотелось бы знать ответ и на вопрос о кодах.
Спасибо!

8

Re: AHK: Отправка русских букв в НЕрусской раскладке.

Кстати, ErrorLevel после WinMenuSelectItem равен 1.

9 (изменено: Irbis, 2012-12-25 22:16:30)

Re: AHK: Отправка русских букв в НЕрусской раскладке.

Делай "1", делай "2"
После добавления иконки на панель быстрого доступа сохранить в *.jpg можно по хоткею Alt+цифра, в моем случае - Alt+4
http://savepic.ru/3731852m.png

10

Re: AHK: Отправка русских букв в НЕрусской раскладке.

Pokerist, ознакомься с этой темой, отредактируй заголовок.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Отправка русских букв в НЕрусской раскладке.

Irbis пишет:

Делай "1", делай "2"
по хоткею Alt+цифра, в моем случае - Alt+4

  Тоже выход, спасибо.


Вопрос по кодам русских клавиш остался.

12 (изменено: YMP, 2012-12-26 08:03:51)

Re: AHK: Отправка русских букв в НЕрусской раскладке.

Pokerist пишет:

Вопрос по кодам русских клавиш остался.

Можно на время переключать окно на русский, потом обратно. Вот так работает вызов пункта "Файл - Сохранить как" в Блокноте (если его окно активно).


Ru = 0x419
En = 0x409

F11::
    Lang := GetLang()
    If (Lang = En) {
        PostMessage, 0x50,, Ru,, A
        Sleep, 200
    }
    Send, {Alt Down}фк{Alt Up}
    PostMessage, 0x50,, Lang,, A
Return

GetLang()
{
    hWnd := WinExist("A")
    ThreadID := DllCall("GetWindowThreadProcessId", Ptr, hWnd, UInt, 0, Ptr)
    Return DllCall("GetKeyboardLayout", Ptr, ThreadID, UShort)
}