Python:获得插入位置

时间:2013-11-01 09:52:09

标签: python position pywin32 caret

我正试图在Python中获得插入位置。我尝试使用win32gui.GetCaretPos()但它总是返回0,0。

您对如何使其有效有任何想法吗?

由于 克里斯

1 个答案:

答案 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