1 (изменено: Maxim, 2014-10-02 22:19:37)

Тема: AHK: Изменение регистра букв при двойном и тройном нажатии F3

Уважаемые форумчане, пожалуйста помогите написать скрипт, чтобы при двойном нажатии клавиши F3 выделенный текст становился текстом только из заглавных (больших) букв, а при тройном нажатии клавиши F3 выделенный текст становился текстом из строчных (маленьких) букв. Выбор клавиши F3 не случаен - я два десятилетия нажимаю комбинацию Shft+F3 для изменения регистра букв, и естественно привык к F3. Очень хотелось бы просто нажимать клавишу F3, а не заниматься «распальцовкой»  Shft+F3.

Возможно, Вам в чем то пригодится следующий скрипт, чтобы не тратить время на придумывания того как лучше оформить двойное и тройное нажатие. Этот замечательный скрипт копирует текст при одном нажатии, вставляет текст при двойном нажатии и вырезает текст при тройном нажатии одной клавиши. Повторюсь, он может пригодится как шаблон в котором прописано двойное и тройное нажатие.


vkE2::
    KeyWait, %A_ThisHotkey%
    KeyWait, %A_ThisHotkey%, D T0.3
    If ErrorLevel
        SendInput ^{vk43}
    Else
    {
        KeyWait, %A_ThisHotkey%
        KeyWait, %A_ThisHotkey%, D T0.3
        If ErrorLevel
            SendInput ^{vk56}
        Else
            SendInput ^{vk58}
        KeyWait, %A_ThisHotkey%
    }
    Return

2

Re: AHK: Изменение регистра букв при двойном и тройном нажатии F3

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

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

3

Re: AHK: Изменение регистра букв при двойном и тройном нажатии F3

Так, вот же.

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

4 (изменено: serzh82saratov, 2014-10-02 23:32:51)

Re: AHK: Изменение регистра букв при двойном и тройном нажатии F3

выделенный текст становился текстом только из заглавных (больших) букв

А, да, тут другое, на скорую руку, так:



F3::
    KeyWait, %A_ThisHotkey%
    KeyWait, %A_ThisHotkey%, D T0.3
    If ErrorLevel
        Return
    Else
    {
        KeyWait, %A_ThisHotkey%
        KeyWait, %A_ThisHotkey%, D T0.3
        If ErrorLevel
            ConvertRegistr(1)
        Else
            ConvertRegistr()
        KeyWait, %A_ThisHotkey%
    }
    Return

ConvertRegistr(up=0)  { 
    Clipboard =
    SendInput ^{vk43}    ;  "C"
    ClipWait, 1 
    if ErrorLevel
        Return

    Loop, parse, Clipboard
    {
        if up
            StringUpper, Letter, A_LoopField
        Else
            StringLower, Letter, A_LoopField
        NewText .= Letter
    }

    Clipboard := NewText
    Sleep 100
    SendInput ^{vk56}    ;  "V"
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK: Изменение регистра букв при двойном и тройном нажатии F3

Подсократить можно:

F3::
    KeyWait, %A_ThisHotkey%
    KeyWait, %A_ThisHotkey%, D T0.3
    If ErrorLevel
        Return

    KeyWait, %A_ThisHotkey%
    KeyWait, %A_ThisHotkey%, D T0.3
    ConvertRegistr(ErrorLevel)
    KeyWait, %A_ThisHotkey%
    Return

ConvertRegistr(up)  { 
    Clipboard =
    SendInput ^{vk43}    ;  "C"
    ClipWait, 1 
    if ErrorLevel
        Return

    if up
        StringUpper, Clipboard, Clipboard
    Else
        StringLower, Clipboard, Clipboard

    Sleep 100
    SendInput ^{vk56}    ;  "V"
}

Ну или ещё так:

ConvertRegistr(up)  { 
    Clipboard =
    SendInput ^{vk43}    ;  "C"
    ClipWait, 1 
    if ErrorLevel
        Return

    DllCall("Char" . (up ? "Upper" : "Lower"), Str, string := Clipboard)
    Clipboard := string

    Sleep 100
    SendInput ^{vk56}    ;  "V"
}

Не обработан вариант обычного одинарного нажатия F3.

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

6

Re: AHK: Изменение регистра букв при двойном и тройном нажатии F3

Подсократить можно:

Ну да, перебирать символы было ни к чему, торопился.

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

7

Re: AHK: Изменение регистра букв при двойном и тройном нажатии F3

Огромное спасибо всем! Вы настоящие волшебники.