internet-explorer - 如何从 Powershell 访问 Internet Explorer 运行实例的经典 Internet Explorer COM 自动化对象?

标签 internet-explorer dom com powershell

如何访问 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/

相关文章:

java - IE 10 中的 JApplet 问题

jquery - PNG 在带有 jquery 的 IE 8 中显示为灰色

delphi - 如何将 Variant 转换为 TADOConnection.ConnectionObject?

c# - 从 C# COM dll 回调到 Delphi 应用程序导致内存泄漏

c++ - COM 服务器挂起检测和解决

javascript - react 应用程序 : issues running on internet explorer 11

javascript - 在 IE 中使用 iframe 时,信号器脚本中的访问被拒绝错误

jquery - 如何动态地将一个div定位在另一个div下面?

java - publicId 和 systemId 之间需要空格

javascript - 统计空文件上传控件