UI自动化切换窗口

2024-03-29

我注意到 setforegroundwindow 可能非常不稳定——无论你怎么做。

我注意到,在可能的情况下使用 UIAutomation 似乎可以改善情况。

例如:

获取 WindowPattern 并使用类似以下内容:

windowPattern.SetWindowVisualState( WindowVisualState.Normal );

windowPattern.SetWindowVisualState( WindowVisualState.Maximized );

现在我的问题是:

我怎么知道我应该将其最大化还是正常。任务管理员和龙自然来说似乎都知道该怎么做。如果它之前最大化,然后最小化,我想在切换到它时最大化窗口。如果它之前没有最大化,我想将其设置为“正常”。

有任何想法吗?


AutomationElement 的 SetFocus 不起作用。

从下面的问题来看:获取另一个进程的窗口状态 https://stackoverflow.com/questions/11065026/get-window-state-of-another-process

我发现 GetPlacement api 给了我我需要的东西:

     if ( (windowplacement.flags & WPF_RESTORETOMAXIMIZED) > 0 )
     {
        windowPattern.SetWindowVisualState( WindowVisualState.Maximized );
     }
     else
     {
        windowPattern.SetWindowVisualState( WindowVisualState.Normal );
     }

这样,如果窗口已最大化,则窗口将恢复为最大化;如果窗口未最大化,则将恢复正常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UI自动化切换窗口 的相关文章

随机推荐