AutoHotkey: изменение регистра выделенного текста

Три AHK-скрипта для изменения регистра в выделенном тексте:

1
; Первая заглавная буква по CTRL + A
^a:: 
	; Получение выделенного текста
	ClipSaved := ClipboardAll
	clipboard := ""
	Send, ^{sc02E}  ; ctrl+c
	ClipWait, 0.2
	selected := clipboard
	Clipboard := ClipSaved
	
	; Преобразование регистра
	text := ""
	if InStr(selected, " ") {
		Loop, parse, selected, " "
		{
			if(A_Index = 1) {
				row := A_LoopField
				StringUpper, row, row, T
				text .= row . " "
			} else {
				tt := A_LoopField
				StringLower, tt, tt
				text .=с tt  . " "
			}
		}
		text := trim(text)
	} else {
		StringUpper, text, selected, T
	}
		
	; Вывод текста через буфер (так быстрее и проще отменить)
	clipboard_tmp := ClipboardAll
	Clipboard := text
	sleep 50
	Send, ^{sc02F}  ; ctrl+v
	sleep 50
	exit
AHK

Пример работы:

2
; Все заглавные буквы по Alt + A
!a:: 
	; Получение выделенного текста
	ClipSaved := ClipboardAll
	clipboard := ""
	Send, ^{sc02E}  ; ctrl+c
	ClipWait, 0.2
	selected := clipboard
	Clipboard := ClipSaved
	
	; Преобразование регистра
	text := ""
	StringUpper, text, selected

	; Вывод текста через буфер (так быстрее и проще отменить)
	clipboard_tmp := ClipboardAll
	Clipboard := text
	sleep 50
	Send, ^{sc02F}  ; ctrl+v
	sleep 50
	exit
AHK

Пример работы:

3
; Все строчные буквы по Win + A
#a:: 
	; Получение выделенного текста
	ClipSaved := ClipboardAll
	clipboard := ""
	Send, ^{sc02E}  ; ctrl+c
	ClipWait, 0.2
	selected := clipboard
	Clipboard := ClipSaved
	
	; Преобразование регистра
	text := ""
	StringLower, text, selected

	; Вывод текста через буфер (так быстрее и проще отменить)
	clipboard_tmp := ClipboardAll
	Clipboard := text
	sleep 50
	Send, ^{sc02F}  ; ctrl+v
	sleep 50
	exit
AHK

Пример работы:

08.04.2022
2261

Комментарии 1

Nice Werzy Nice Werzy
25 июня 2024 в 14:13
Здравствуйте, огромное спасибо за скрипт, но я в упор не понимаю, зачем вы возвращаете значение переменной ClipSaved до выполнения скрипта? Зачем в конце вводите переменную clipboard_tmp, и никак с ней не взаимодействуете? Если вы хотите сохранить содержимое буфера обмена, то возвращать его стоит в конце скрипта, если не хотите, то это лишние, и бесполезные, действия в коде. Понимаю, что занимаюсь некрофилией, поднимая позапрошлогодние темы, но информации по autohotkey на русском в сети немного, а ваш скрипт очень полезен.
; Все строчные буквы по Win + A
#a:: 
	; Получение выделенного текста
	ClipSaved := ClipboardAll
	clipboard := ""
	Send, ^{sc02E}  ; ctrl+c
	ClipWait, 0.2
	selected := clipboard
	
	; Преобразование регистра
	text := ""
	StringLower, text, selected
 
	; Вывод текста через буфер (так быстрее и проще отменить)
	clipboard := text
	sleep 50
	Send, ^{sc02F}  ; ctrl+v
	sleep 50

	clipboard := ClipSaved

	exit

, чтобы добавить комментарий.

Другие публикации

Скан-коды клавиш клавиатуры (scan codes)
Скан-код — числовой код, присвоенный каждой клавише в IBM-совместимых компьютерах, с помощью которого драйвер...
31843
+4
Замена раскладки на PHP
PHP функции для исправление неправильной раскладки клавиатуры в тексте и использование их в поиске по сайту.
11509
+11
Таблица Alt-кодов
Alt-код – метод вставки символа сочетанием нажатой клавиши Alt и числа, набранного на цифровой клавиатуре (Num Lock должен быть включен).
35370
+5
Замена регистра в строках PHP
Список PHP-функций для изменения регистра символов в строках и примеры их использования.
17306
+1
Работа с Input Text jQuery
Сборник приемов JQuery для работы с текстовыми полями. Во всех примерах используется следующий html код...
132431
+15
Работа с Textarea jQuery
Сборник jQuery приемов с textarea - получить содержимое, вставить значение, подсчет количества символов и строк и т.д.
55255
+3