|
|
1
2
Word(和Excel)将只注册在rot(运行对象表)中加载的第一个实例。 rot是getobject“获取对象”的地方,因此在某些情况下,它“可能加载两个winword.exe实例,一个可见,一个不可见,但不可见的实例是在rot中注册的实例,而可见的实例则不是。 这会让你看到你所看到的行为。 不幸的是,如果没有一些API调用来枚举系统上所有打开的窗口,则始终存在getObject无法获得预期对象的风险。 解决这个问题的办法不多。 另外,你的最终目标还是有点可疑。 当您说“连接到正在运行的MS Word实例并将此应用程序置于前端的正确方法是什么?”,如果加载了2个或更多winword.exe的实际实例会发生什么? 你想把它“连接”到前面。不管怎样,这是一个骰子,除非您对打开的特定文档窗口特别感兴趣。 据我所知,Word将注册rot中的所有文档窗口,不管它是winword的哪个实例,因此理论上,您可以使用getobject来检索特定文档,从文档对象中获取应用程序对象,然后使用普通的windowstate使其可见。 以下是文档的getObject示例 |