【问题标题】:PowerShell get running explorer process and their documentsPowerShell 运行资源管理器进程及其文档
【发布时间】:2011-04-18 16:53:17
【问题描述】:

如何访问已在运行的资源管理器进程的文档属性。我正在使用以下代码行来获取进程。

$ie2 = 获取进程 |where {$.mainWindowTItle -eq "Windowtitletext"} |其中 {$.ID -ne $ieParentProcessNumber}

现在我想对 $ie2.Document 等进程进行一些处理。

【问题讨论】:

  • 您是指“Windows Explorer”还是“Internet Explorer”?我怀疑是后者。

标签: powershell popup document explorer


【解决方案1】:

您似乎正在尝试直接从进程中访问文档(即网页的数据)。使用 get-process 是不可能的。

例如,如果您只想从网站读取数据,您将需要创建一个 IE com 对象的实例或使用 System.Net.WebClient。发布有关您正在尝试做的事情的更多信息,我们可以更好地帮助您

【讨论】:

  • 简而言之:我正在尝试获取弹出窗口的文档。说明:我有一个带有超链接的asp.net 页面,当我单击该链接时,它会调用javascript __dopostback 事件,该事件会显示一个弹出窗口,并且在该弹出窗口上我可以选择下载该zip 文件。我现在面临的问题是,当我在 powershell 中调用 click 事件时,会启动一个新的 iexplorer 进程(用于弹出窗口)我如何获取该弹出窗口的文档并单击它。
  • 用 powershell 做这个 pureley 可能有点痛苦,不如使用 Watin + Powershell 之类的东西。或者您可以尝试使用发送键到活动窗口来执行您想要的任何操作
【解决方案2】:

可以附加到ie窗口:

$app = New-Object -ComObject shell.application
$popup = $app.Windows() | where {$_.LocationName -like "*foo*"}
$popup.document

【讨论】:

    【解决方案3】:

    如果您知道您将收到 1 个对象:

    (Get-Process explorer).CPU
    

    如果你想知道有哪些可用的属性:

    Get-Process explorer | Get-Member
    

    如果您的结果集中有多个对象(例如 Get-Process 返回多个计算搜索条件的进程):

    Get-Process | Where-Object { $_.Handles -ge 200 } | Foreach-Object { $_.CPU }
    

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 1970-01-01
      • 2015-03-20
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      相关资源
      最近更新 更多