Как получить дескриптор определенного окна проводника в 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")

Связанный контент