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")

関連情報