gpt4 book ai didi

delphi - 从 Word OLE 应用程序对象获取应用程序标题

转载 作者:行者123 更新时间:2023-12-03 14:54:19 25 4
gpt4 key购买 nike

有没有办法从 Word.Application OLE 对象获取窗口标题?我想用它来尝试使用 FindWindow 获取窗口.

我正在创建一个 OLE 对象并添加一个现有文档,如下所示:

App := CreateOLEObject('Word.Application');
App.Visible := True;
App.Activate;
Doc := App.Documents.Open('File.doc');

此时,标题值如下:

App.Caption => 'Microsoft Word'
Doc.ActiveWindow.Caption => 'File.doc [Compatibility Mode]'

但是,窗口标题实际上是 File.doc [Compatibility Mode] - Microsoft Word .

是否有某种方法可以从 OLE 对象获取此窗口标题(似乎没有更好的方法可以在不使用 FindWindow 的情况下获取 HWND 本身)?我怀疑假设窗口标题始终是 <doc caption> - <app caption> 是否安全.

我想使用 FindWindow函数来获取窗口的句柄,以便能够通过传递正确的标题以稍微安全的方式将其带到前台(请参阅 OLE Automation to launch MS Word and bring to front )。

编辑

这是使用 http://support.microsoft.com/kb/258511 中描述的解决方法进行的修复

App := CreateOLEObject('Word.Application');

// get the handle
TempTitle := 'Temp - ' + IntToStr(Random(1000000));
App.Caption := TempTitle;
Handle := FindWindow('OpusApp', PWideChar(TempTitle));
App.Caption := EmptyStr;

App.Visible := True;
App.Activate;
Doc := App.Documents.Open('File.doc');

// bring to front
SetForegroundWindow(Handle);

最佳答案

关于delphi - 从 Word OLE 应用程序对象获取应用程序标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7652171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com