我希望能够使用自动化“恢复”MS Word的文档窗口。
我已经有了应用程序对象,我尝试过调用App.Activate。激活将窗口置于窗口堆栈的顶部,但如果Word最小化则不会。我可以将WindowState设置为Maximized,Minimized和Normal,但我真正需要做的是将窗口恢复到用户最小化之前的状态(这相当于用户点击任务栏中的应用程序按钮)
这可以使用Word自动化吗?
我实际上使用C ++进行自动化,因此如果需要,我可以调用Win32 API函数。
如果没有直接的方法来恢复窗口,那么问题就变成了'我如何获得ActiveWindow的窗口句柄?'
答案 0 :(得分:0)
尝试::ShowWindow(handle, SW_RESTORE)
答案 1 :(得分:0)
到目前为止,我提出的最佳方法如下:
使用Application.ActiveWindow
获取活动窗口此窗口对象具有名为Caption的属性。标题出现在文档窗口的标题中。
然后我使用Win32函数EnumWindows()来搜索Win32窗口。我使用Win32函数GetWindowText()获取EnumWindows()返回的每个窗口的窗口文本。我试图在窗口文本中找到标题,并作为额外的检查,我确保窗口文本还包含字符串'Microsoft Word'。
一旦找到窗口,我就会拥有它的Win32窗口句柄,然后我可以将其传递给Win32函数ShowWindow(hWnd,SW_RESTORE)。
您还必须致电Application.Activate。
这个解决方案并不完美,例如我不想假设窗口标题总是包含文本'Microsoft Word',但我也不想选择错误的窗口。