【问题标题】:Visual Studio incorrect assignment into variableVisual Studio 不正确地分配给变量
【发布时间】:2019-11-22 16:27:01
【问题描述】:

我正在使用 FlaUI 库来自动化 Windows 计算器。

由于计算器是 Windows 商店应用程序,因此应在主窗口的父窗口上执行诸如移动、更改视觉状态等窗口操作。 这样做,我遇到了以下奇怪的问题:

Window parent = window.Parent.AsWindow();

虽然 'window.Parent' 是 x,但出于某种原因,'parent' 被指定为 x.Parent(在本例中是桌面)。

它不是恒定的;有时“父母”被分配为桌面,有时如预期的那样 - 计算器。

我以前从未见过类似的问题,也不知道如何解决这个问题,或者如何用几个关键字来描述它以搜索解决方案。

任何帮助将不胜感激。

【问题讨论】:

    标签: c# automation visual-studio-2019 flaui


    【解决方案1】:

    主要问题肯定是GetMainWindow。这是该过程的主窗口。 Windows 在进程主窗口中相当不一致。就像闪屏会搞砸(有时你会得到闪屏,有时是闪屏后的屏幕)。您还经常得到甚至不再可用的窗口。商店应用程序也会发生同样的情况,因为它们使用此代理可执行文件来启动。 您可以尝试以下几种方法:

    1. 尝试使用进程中的第一个窗口 (app.GetAllTopLevelWindows(automation)[0])
    2. 从桌面获取窗口 (automation.GetDesktop().FindFirst(cf=>cf.ByName("Calculator")))
    3. 使用重试 (var mainWindow = Retry.While(() => app.GetMainWindow(automation), (mw) => mw.Title != "Calculator")

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-30
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      相关资源
      最近更新 更多