作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何访问 Internet Explorer 运行实例的经典 Internet Explorer COM 自动化对象?也就是说,如果我在多个窗口中打开 Internet Explorer,如何从 Powershell 中将对应于这些窗口之一的 COM 对象与 Powershell 中的变量相关联?我最接近的方法是通过 get-process 获取进程“iexplore”和“ieuser”。
最佳答案
通常,要获得对现有对象上的 COM 接口(interface)的访问权限,您将使用正在运行的对象表。不幸的是,Internet Explorer 不会将自己注册到运行对象表中——但是,这为我们提供了一些有用的 Google 搜索结果。
例如,谷歌搜索“运行对象表”“Internet Explorer”找到了我 How to connect to a running instance of Internet Explorer它提供了一个(VBScript?)示例,演示了 ShellWindows 对象的使用。
将此示例快速转换为 PowerShell 脚本后(无错误检查!)为我们提供:
$shellapp = New-Object -ComObject "Shell.Application"
$ShellWindows = $shellapp.Windows()
for ($i = 0; $i -lt $ShellWindows.Count; $i++)
{
if ($ShellWindows.Item($i).FullName -like "*iexplore.exe")
{
$ie = $ShellWindows.Item($i)
break
}
}
$ie.navigate2("http://stackoverflow.com")
关于internet-explorer - 如何从 Powershell 访问 Internet Explorer 运行实例的经典 Internet Explorer COM 自动化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697759/
我是一名优秀的程序员,十分优秀!