我从 Powershell 启动“Explorer.exe”,并希望获取资源管理器窗口的进程 ID,这样我就不会在其他资源管理器窗口上误操作。
代码:Start-Process "Explorer.exe" -PassThru 结果:我可以看到进程 ID,但它与 UISpy 或任务管理器中窗口的真实进程 ID 不同。似乎 explorer.exe 启动另一个进程(B)可以自行退出,最后我们看到进程(B)。我得到的过程是退出的过程。问题:我怎样才能得到真正的进程ID(B)?
我从 Powershell 启动“Explorer.exe”,并希望获取资源管理器窗口的进程 ID,这样我就不会在其他资源管理器窗口上误操作。
代码:Start-Process "Explorer.exe" -PassThru 结果:我可以看到进程 ID,但它与 UISpy 或任务管理器中窗口的真实进程 ID 不同。似乎 explorer.exe 启动另一个进程(B)可以自行退出,最后我们看到进程(B)。我得到的过程是退出的过程。问题:我怎样才能得到真正的进程ID(B)?
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]