如何在 powershell 中获取特定资源管理器窗口的句柄

如何在 powershell 中获取特定资源管理器窗口的句柄

我正在按照这里的教程进行操作: https://blogs.technet.microsoft.com/heyscriptingguy/2015/12/26/weekend-scripter-manage-window-placement-by-using-pinvoke/

他们使用代码

(Get-Process -Name PowerShell).MainWindowHandle

获取名为“PowerShell”的进程的句柄

如何获取名为“FOO”的文件资源管理器窗口的句柄?

答案1

MainWindowHandle 不适用于 explorer.exe。下面的代码对我有用

    (New-Object -ComObject 'Shell.Application').Windows() | ForEach-Object { 
        if ($_.locationName -contains "foo") {
             $pwnd = $_.HWND
        }
    }

答案2

就像是:

$processId = (Get-Process | ? ProcessName -eq explorer | ? MainWindowTitle -match "pattern")

相关内容