Я пытаюсь получить позицию каретки в Python. Я пытался использовать win32gui.GetCaretPos()
, но он всегда возвращает 0,0.
У вас есть идеи, как заставить его работать?
Спасибо Крис
Я пытаюсь получить позицию каретки в Python. Я пытался использовать win32gui.GetCaretPos()
, но он всегда возвращает 0,0.
У вас есть идеи, как заставить его работать?
Спасибо Крис
Если курсор находится в окне, созданном другим потоком, вам нужно вызвать AttachThreadInput
. Предполагая, что вам нужна каретка окна переднего плана, вы можете добраться до нее следующим образом:
import win32gui
import win32process
import win32api
fg_win = win32gui.GetForegroundWindow()
fg_thread, fg_process = win32process.GetWindowThreadProcessId(fg_win)
current_thread = win32api.GetCurrentThreadId()
win32process.AttachThreadInput(current_thread, fg_thread, True)
try:
print win32gui.GetCaretPos()
finally:
win32process.AttachThreadInput(current_thread, fg_thread, False) #detach