Python from_point函数不返回windows CMD上的预期控件

Python from_point函数不返回windows CMD上的预期控件,python,ui-automation,pywinauto,Python,Ui Automation,Pywinauto,我有以下代码: from pywinauto import Desktop from pyautogui import position while True: desktop = Desktop(backend="uia") control = desktop.from_point(*position()) control.draw_outline() 因此,在每个代码循环中,pywinauto都会在当前鼠标位置的控件上绘制一个绿色矩形。这样地:

我有以下代码:

from pywinauto import Desktop
from pyautogui import position

while True:
    desktop = Desktop(backend="uia")
    control = desktop.from_point(*position())
    control.draw_outline()
因此,在每个代码循环中,pywinauto都会在当前鼠标位置的控件上绘制一个绿色矩形。这样地:

但是,仅在CMD应用程序上,
from_point
函数找不到状态栏和滚动条。它只找到文本区域

我认为它与CMD应用程序有关,可能它在所有其他控件之前绘制文本区域控件。所以我想知道是否有可能克服这种情况,也许可以使用函数
top\u from\u point
和/或
parent
。值得一提的是,我没有发现任何其他应用程序具有相同的行为,但可能其他应用程序也存在此问题。

  • 可以使用“Inspect.exe”复制此行为: 如果将鼠标光标悬停在Windows CMD上,它将只找到“文本区域”控件。要查找其他控件,必须单击inspect GUI中的树

  • 对于Pywinauto,它是相同的: 如果将鼠标光标悬停在Windows CMD上,它将只找到“文本区域”控件。 要查找其他控件,必须执行以下代码: 打印(control.top\u level\u parent().subjections())

from_点的实现在uia_元素_info.py中:

@classmethod
def from_point(cls, x, y):
    return cls(IUIA().iuia.ElementFromPoint(tagPOINT(x, y)))
它正在使用UIAutomationCore.dll中的MS UI自动化API函数


所以我认为这可能是iuia.ElementFromPoint的问题。

我也尝试过其他自动化工具,但同样的行为也发生了。谢谢,大卫。