AutoHotkey (AHK) — это мощный язык сценариев, который позволяет пользователям автоматизировать задачи на своих компьютерах под управлением Windows. Одним из общих требований является извлечение выделенного текста и работа с ним из разных приложений. В этой статье блога мы рассмотрим различные методы достижения этой цели с помощью AutoHotkey, а также примеры кода. Итак, давайте углубимся и узнаем, как выделить текст в AHK!
- Метод 1: использование буфера обмена
Один простой способ получить выделенный текст — использовать функцию буфера обмена в AutoHotkey. Для этого необходимо выполнить следующие шаги:
а. Используйте команду Sendдля имитации нажатия клавиш Ctrl+C, которое копирует выделенный текст в буфер обмена.
b. Получите доступ к содержимому буфера обмена с помощью переменной Clipboardв AHK.
c. Сохраните выделенный текст в переменной и манипулируйте им по мере необходимости.
Пример кода:
Send, ^c
highlightedText := Clipboard
MsgBox, The highlighted text is: %highlightedText%
- Метод 2: оконные сообщения
Другой подход предполагает использование оконных сообщений для получения выделенного текста. Этот метод работает путем отправки определенных сообщений в окно целевого приложения и захвата текста при ответе.
Пример кода:
TargetApp := "Notepad" ; Replace with the desired application's name
; Find the target window
WinGet, targetWindow, ID, %TargetApp%
if !targetWindow
{
MsgBox, The target application is not running.
return
}
; Send the window message to retrieve the highlighted text
SendMessage, 0x000C, 0, 0, , ahk_id %targetWindow%
highlightedText := ErrorLevel
MsgBox, The highlighted text is: %highlightedText%
- Метод 3: OCR (оптическое распознавание символов)
В некоторых случаях выделенный текст может находиться в изображении или нередактируемом элементе управления. В таких сценариях для извлечения текста можно использовать OCR. AutoHotkey предоставляет такие библиотеки, какGdip_AllиTesseract, которые обеспечивают возможности оптического распознавания символов.
Пример кода (с использованием Tesseract OCR):
ImageFile := "C:\path\to\image.png" ; Replace with the path to your image file
; Load the Tesseract library
#Include <Tesseract>
; Perform OCR on the image to extract the highlighted text
highlightedText := Tesseract_Text(ImageFile)
MsgBox, The highlighted text is: %highlightedText%
В этой статье мы рассмотрели три различных метода получения выделенного текста в AutoHotkey. Мы рассмотрели подход к буферу обмена, оконные сообщения и методы оптического распознавания символов. В зависимости от вашего конкретного варианта использования и характера выделенного текста вы можете выбрать наиболее подходящий метод. Используя эти методы в своем арсенале AHK, вы сможете автоматизировать задачи, связанные с работой с выделенным текстом, как профессионал!