2

我从 Powershell 启动“Explorer.exe”,并希望获取资源管理器窗口的进程 ID,这样我就不会在其他资源管理器窗口上误操作。

代码:Start-Process "Explorer.exe" -PassThru 结果:我可以看到进程 ID,但它与 UISpy 或任务管理器中窗口的真实进程 ID 不同。似乎 explorer.exe 启动另一个进程(B)可以自行退出,最后我们看到进程(B)。我得到的过程是退出的过程。问题:我怎样才能得到真正的进程ID(B)?

4

1 回答 1

5

Explorer.exe 将立即启动一个全新的进程,但该进程将很快终止,将其状态移交给现有的资源管理器进程。一般来说,它不会像大多数程序那样持续存在并添加到不断增长的进程​​集合中。

看看这个:

"Old explorer.exe instances"
Get-Process explorer

Start-Process explorer.exe
sleep 1  # wait for this one to die

"New explorer.exe instances"
Get-Process explorer

您将看到它是同一组资源管理器实例。我认为这与 reg 密钥有关HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced [SeparateProcess]

于 2012-08-23T03:51:43.520 回答