1 (изменено: pyhappy, 2012-07-26 16:44:51)

Тема: AHK: Как использовать RSHIFT шифт для спецсимволов в другой раскладке

Как использовать правый шифт для печати спецсимволов в другой раскладк
те если я в русской, то хотел чтобы при нажатии правого шифта и 4 печатался знак $ вместо ;

есть вот такие заготовки, но пока не работает. Прошу помочь

RAlt::
  PostMessage, 0x50, 2,,, A  ; Переключить язык.
  KeyWait, RAlt              ; Ждать отпускания.
  PostMessage, 0x50, 2,,, A  ; Переключить.
Return
RShift::
  PostMessage, 0x50, 2,,, A  ; Переключить язык.
  Send, {Shift down}         ;
  KeyWait, RShift              ; Ждать отпускания.
  Send, {Shift up}         ;
  PostMessage, 0x50, 2,,, A  ; Переключить.
Return

2 (изменено: creature.ws, 2012-07-26 18:23:36)

Re: AHK: Как использовать RSHIFT шифт для спецсимволов в другой раскладке

#If GetKeyState("RShift", "P") && GetKeyboardLayout("A") = 1049
    :*?:;::$
#If


GetKeyboardLayout(ByRef window)
{
    return DllCall("GetKeyboardLayout", "UInt", DllCall("GetWindowThreadProcessId", "Int", WinExist(window), "Int", 0), "UShort")
}

Вариант выше соответствует формулировке вопроса.

По идее, менее требовательное к ресурсам решение:

#If GetKeyboardLayout("A") = 1049
    >+4::$
#If

GetKeyboardLayout(ByRef window)
{
    return DllCall("GetKeyboardLayout", "UInt", DllCall("GetWindowThreadProcessId", "Int", WinExist(window), "Int", 0), "UShort")
}

Оба варианта уместны, если используется более двух языков ввода и описанная функциональность требуется лишь в русском.
В общем же:

>+4::$

3

Re: AHK: Как использовать RSHIFT шифт для спецсимволов в другой раскладке

исправил оформление

4

Re: AHK: Как использовать RSHIFT шифт для спецсимволов в другой раскладке

По-моему, пример с RShift делает как раз то, что нужно. В чём у вас конкретно с ним проблемы?

5

Re: AHK: Как использовать RSHIFT шифт для спецсимволов в другой раскладке

pyhappy, исправьте ошибки, расставьте заглавные буквы и знаки препинания.

Запрещается отвечать в этой теме до внесения исправлений.