Ответы пользователя по тегу AutoHotkey
  • Как вставить текст, содержащий фигурные скобки?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    А открыть мануал приложения вам религия не позволяет? RTFM: https://ahk-wiki.ru/send
    Ответ написан
  • Можно ли сделать автозамену русских букв а,о (маленькие) на английские?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Легко - ставите расширение TemperMonkey и добавляете следующий скрипт в него:
    // ==UserScript==
    // @name         Исправление текста
    // @namespace    http://tampermonkey.net/
    // @version      2024-10-22
    // @description  Заменяет все английские буквы во всех текстах на русские
    // @author       VoidVolker
    // @match        https://24forcare.com/*
    // @icon         https://www.google.com/s2/favicons?sz=64&domain=24forcare.com
    // @grant        none
    // ==/UserScript==
    
    ;(function () {
        'use strict'
        $(function () {
            console.log('Скрипт запущен в работу...')
    
            // Английские символы
            let en = 'ABCEHKMOPTXYabcehkmoptxy'
            // Русские символы
            let rus = 'АВСЕНКМОРТХУавсенкмортху'
            // Таблица замены en -> ru
            let map = {}
            en.split('').forEach((char, i) => (map[char] = rus[i]))
    
            // Счетчик замен
            let charsCounter = 0
            let nodesCounter = 0
    
            // Нормализовать текст
            // В идеале следовало бы извлечь из текста слова
            // И уже в словах проверять наличие разных символов 
            function normalizeEn2Rus(str) {
                // Конвертируем строку в массив
                let arr = str.split('')
                // И проходим по всем символам в массиве
                for (let i in arr) {
                    // Получаем символ
                    let char = arr[i]
                    // Если символ найден - заменяем его, если нет - оставляем оригинальный
                    arr[i] = map[char] ?? char
                    charsCounter++
                }
                // Конвертируем массив в строку и возвращаем результат
                return arr.join('')
            }
    
            // Получаем список всех элементов на странице
            let items = $('*', document.body)
    
            // Проходим по всем элементам
            items.each((i, item) => {
                // Исключаем ссылки, скрипты и стили из поиска
                if (item.nodeName === 'A' || item.nodeName === 'SCRIPT' || item.nodeName === 'STYLE') { return }
                // Получаем список детей у элемента
                Array.from(item.childNodes)
                    // Фильтруем только текстовые элементы и те, в которых есть текст
                    .filter((el) => el.nodeType == Node.TEXT_NODE && el.textContent?.length > 0)
                    .forEach((el) => {
                        // Нормализуем текст элемента
                        el.textContent = normalizeEn2Rus(el.textContent)
                        console.log(el.textContent)
                        nodesCounter++
                    })
            })
    
            console.log(`Скрипт завершил работу успешно. Всего заменено символов [${charsCounter}] в [${nodesCounter}] текстовых элементах.`)
        })
    })()

    В результате все английские буквы, похожие на русские будут заменены обратно на русские автоматически при заходе на сайт и открытии любой страницы.
    Ответ написан
  • Существуют ли аналоги AHK с нормальным диалектом?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Классика: nnCron (скачать) - не си подобный язык, зато маленький, быстрый, умеет все, плюс куча плагинов и можно расширять бесконечно.
    Ответ написан
    Комментировать