我从Powershell启动了“Explorer.exe”,并希望获取资源管理器窗口的进程ID,以便我不会在其他资源管理器窗口上误操作。
代码:Start-Process“Explorer.exe”-PassThru 结果:我可以看到进程ID,但它与UISpy或任务管理器中窗口的实际进程ID不同。似乎explorer.exe启动另一个进程(B)可以退出自己,最后我们看到进程(B)。我得到的过程是退出的过程。 问题:如何获得真实的进程ID(B)?
答案 0 :(得分:4)
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
您将看到它是同一组资源管理器实例。我认为这与注册码HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced [SeparateProcess]