我注意到 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(使用前将#替换为@)