我认为没有明确的答案,所以你如何解决这个问题?:
我的主应用程序(MicroStation插件)使用SHDocVw.InternetExplorer COM包装器启动IE,与其交互,在未使用时隐藏它(例如,当用户关闭窗口时将拦截并将InternetExplorer.Visible设置为false)。
当主应用程序关闭时,插件通过调用InternetExplorer.Quit关闭IE,但iexplore进程仍在运行(主应用程序关闭时IE被隐藏)。
我尝试过:
有趣的是,我无法重现在同一个主应用程序(MicroStation插件)中调用Quit的问题,但主应用程序正在运行时,而不是在退出事件处理代码中。当在其他地方调用时,Quit按预期关闭IE。
否则,InternetExplorer对象对我来说是不透明的。
还有其他方法可以调试此问题吗?
编辑:值得注意的是,主应用创建了一个UserControl并使IE窗口成为此UserControl的子窗口(使用SetWindowLong更改GWL_STYLE以允许窗口成为子窗口SetParent将UserControl设置为父级)。但是当IE被隐藏时(Quit尝试失败时),父窗口被设置为0。
谢谢!