Я пытаюсь создать простую утилиту с открытым исходным кодом для Windows с помощью Python, которая может выполнять пользовательские действия над выбранным текстом текущего активного окна. Утилита должна быть активирована с использованием заранее определенного сочетания клавиш.
Использование частично описано в следующем примере:
- Пользователь выбирает текст с помощью мыши или клавиатуры (в любом окне приложения)
- Пользователь нажимает заранее установленную комбинацию клавиш
- Выбранный текст извлекается нашей утилитой или копируется в буфер обмена (оба подхода должны быть точными)
- Зависимое от ярлыка действие клавиатуры выполняется по выбранному тексту
Меня озадачивает шаг 3. Как выбранный текст извлекается из активного окна. Это должно работать со всеми приложениями.
Я использую модуль pywin32.
Заранее благодарим за ваши ответы и советы.
Обновление # 1:
Оказывается, есть два подхода к выполнению задачи:
- Найдите активное окно, затем отправьте ему сообщение/нажатие клавиши (Ctrl-C), чтобы скопировать выделенный текст в буфер обмена. Затем утилита может работать с текстом, обратившись к нему, используя связанные с буфером обмена функции.
- Найдите активное окно, затем извлеките выделенный текст напрямую (без копирования его в буфер обмена). Это кажется более сложным, чем первый подход.
В качестве отправной точки:
Получить активный идентификатор окна, как указал Anurag Uniyal в его .
Или получить объект window со следующим кодом:
import win32ui
wnd = win32ui.GetForegroundWindow()
print wnd.GetWindowText()