我正在寻找一个可以帮助我的Python脚本,如何获取TEXT光标的位置?。
我不是在寻找鼠标指针位置。 通常很多Python库都会帮你找到鼠标指针屏幕位置的坐标,但我不需要这个。
我需要文本光标,您可以在 Excel 单元格或 Windows 软件处方集的文本框中或 Web 处方集的文本框中找到它。
我正在用python 库“pyautogui”自动填充WINDOWS下的处方集,我需要知道文本光标是否位于该处方集的某个位置,以便在某个位置写入一些值。
请记住,鼠标指针可以停在屏幕的一角,当我运行“pyautogui”库的脚本以自动用数据填充处方集时,文本光标在该处方集的所有文本框中运行和设置数据。 此处方集位于 WINDOWS 应用程序中。
如果您可以帮助我并且想要编写执行此操作的 python 脚本,请在发布之前先在您的计算机上检查它。谢谢。
像 pyautogui 这样的库本身不支持确定 Windows 应用程序或表单中文本光标(插入符号)的位置。但是,可以通过 ctypes 或 pywin32 Python 库使用 Windows API 来完成。
我现在在 Mac 上,所以我无法对此进行测试,但我认为这应该能够为您提供聚焦窗口中的文本光标位置:
import ctypes
from ctypes import wintypes`
def get_caret_position():
# Load required user32 DLL
user32 = ctypes.windll.user32
# Structures for caret position
class POINT(ctypes.Structure):
_fields_ = [("x", wintypes.LONG), ("y", wintypes.LONG)]
caret_pos = POINT()
# Get the caret position
success = user32.GetCaretPos(ctypes.byref(caret_pos))
if success:
return caret_pos.x, caret_pos.y
else:
return None
if __name__ == "__main__":
position = get_caret_position()
if position:
print(f"The caret position is: {position}")
else:
print("Could not retrieve caret position.")`
'GetCaretPos' 是一个 Windows API 函数,用于检索插入符相对于活动窗口的当前位置。我们将其保存到
POINT
来存储插入符位置的 x 和 y 坐标。
看起来其他人已经问了类似的问题并且查看答案,如果另一个线程创建了窗口,则此工作可能会出现一些问题。您可能还需要查看该答案。