Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - AutoHotKey: Замена запятой на точку и ввод "і" и "ї" из русской раскладки.

Ответить
Настройки темы
Любой язык - AutoHotKey: Замена запятой на точку и ввод "і" и "ї" из русской раскладки.

Пользователь


Сообщения: 125
Благодарности: 3

Профиль | Отправить PM | Цитировать


Добрый день,

подскажите, как написать 2 скрипта для горячих клавиш в русской раскладке клавиатуры.

1. На цифровом блоке клавиатуры при нажатии клавиши "," в любой раскладке вместо "," вводилась точка "." (как в английской) ?

2. В русской раскладке клавиатуры:
При нажатии LeftAlt + "ы" вводилась "і"; при нажатии LeftAlt + shift + "ы" вводилась "І".
При нажатии LeftAlt + "ъ" вводилась "ї"; при нажатии LeftAlt + shift + "ъ" вводилась "Ї".

Отправлено: 12:29, 20-10-2021

 

Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


2 - почему не подходит просто сменить раскладку на украинскую?

Отправлено: 16:50, 20-10-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 125
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Fors1k:
почему не подходит просто сменить раскладку на украинскую? »
Тогда будет 3 раскладки, а это напрягает переключать, запутаться можно. Украинский нужен реже.

Есть такая заготовка:

Код: Выделить весь код
#Persistent

NumpadDot:: ; ввод точки вместо запятой на нампаде
Send, .
return

RU() ; Проверка языка ввода.
{
    WinID := WinExist("A")
    ThreadID := DllCall("GetWindowThreadProcessId", "UInt", WinID, "UInt", 0)
    InputLocaleID := DllCall("GetKeyboardLayout", "UInt", ThreadID, "UInt")
    If InputLocaleID = 0x4190419
        Return True
    Else
        Return False
}

      
    <!sc1F::
        if RU() = 1
            Send, i ; если русский язык, то ввод i
        if RU() = 0
            Send, s ;если другой язык, то ввод s
    return
    
    <!+sc1F:: 
        if RU() = 1
            Send, I ;если русский язык, то ввод I
        if RU() = 0
            Send, S ;если другой язык, то ввод S
    return
    
    <!sc1B::
        if RU() = 1
            Send, ї ; если русский язык, то ввод i
        
    return
    <!+sc1B:: 
        if RU() = 1
            Send, Ї ;если русский язык, то ввод I
        
    return
Но тут непонятно, почему для i есть латинский кейс, а для ї - нет?
Еще непонятно, почему цикла нет. Он же закончится после одного нажатия.

Последний раз редактировалось stuermer01, 20-10-2021 в 17:59.


Отправлено: 17:54, 20-10-2021 | #3


Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


Для возможности автоматизации нажатий клавиш и кликов,
установите модуль psClick в PowerShell.

Теперь можем отслеживать и подменять нажатые клавиши:
Код: Выделить весь код
cls
while($true){
    Sleep -m 2
    if((Get-KeyboardLayout).Culture -ne "ru-RU"){continue}
    if(Get-KeyState Decimal){
        Send-Key Back
        Sleep -m 16
        Send-Text "." -Handle (Get-FocusWindow)
        Sleep -m 16
    }
    if(Get-KeyState S){
        Send-Key Back
        Sleep -m 16
        if((Get-KeyState LShiftKey) -eq 2)
        {Send-Text "І" -Handle (Get-FocusWindow)}
        else
        {Send-Text "і" -Handle (Get-FocusWindow)}
        Sleep -m 16
    }
    if(Get-KeyState Oem6){
        Send-Key Back
        Sleep -m 16
        if((Get-KeyState LShiftKey) -eq 2)
        {Send-Text "Ї" -Handle (Get-FocusWindow)}
        else
        {Send-Text "ї" -Handle (Get-FocusWindow)}
        Sleep -m 16
    }
}  
Погонял несколько раз - работает нормально. Если прям зажать клавишу, то может иногда проскакивать русская буква.
Это тоже можно решить, но надо будет делать перехват самих нажатий, что приведёт к увеличению объема кода.
Для набора текста этого варианта должно быть вполне достаточно. Кстати, идея насчет замены , на . очень неплохая.

Последний раз редактировалось Fors1k, 06-11-2021 в 15:13.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:07, 20-10-2021 | #4


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Создатель раскладки клавиатуры Microsoft (MSKLC) Версия 1.4

Удобная раскладка клавиатуры. Как самому создать удобную раскладку?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 21-10-2021 в 07:44.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:53, 20-10-2021 | #5


Пользователь


Сообщения: 125
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Fors1k:
Кстати, идея насчет замены , на . очень неплохая. »
пользуйтесь на здоровье

Цитата megaloman:
Удобная раскладка клавиатуры. Как самому создать удобную раскладку? »
Может кто-то сделал уже и может выложить рус-укр раскладку, чтоб велосипед не изобретать? Там ещё есть символы ', Ґґ, ₴ - вроде всё. По той же схеме - LAlt, LALt+Shift.

Microsoft Keyboard Layout Creator

Последний раз редактировалось stuermer01, 21-10-2021 в 21:51.


Отправлено: 16:35, 21-10-2021 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата stuermer01:
Еще непонятно, почему цикла нет. Он же закончится после одного нажатия. »
AHK работает не так. Сходите на Community (если нормально с английским) или Серый форум (на русском), там разъяснят и подкажут.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:47, 23-10-2021 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - AutoHotKey: Замена запятой на точку и ввод "і" и "ї" из русской раскладки.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как убрать переход вверх из "Моего компьютера" на "Рабочий стол"? Yewgeniy Хочу все знать 3 15-06-2018 17:56
CMD/BAT - [решено] Нужно создать "батник" - вырезать из "2.txt" первых n строк и вставить их в "1.txt" temphard Скриптовые языки администрирования Windows 12 10-01-2014 18:36
[решено] При открытие "vk.com", "выкидывает" на страницу для "разморозки страницы" sovenok Лечение систем от вредоносных программ 17 21-11-2013 04:09
Разное - [решено] перестала набираться буква "я" и "z", замена клавиатуры ничего не дает Pavel_aka_KIT Microsoft Windows 2000/XP 8 18-08-2013 08:50
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход