Find-Window

Найти указатель окна
Параметры

  • -Title Заголовок целиком/часть заголовка/регулярное выражение

  • -Class Класс окна/регулярное выражение

  • -ProcessName Имя процесса

  • -wPID ID процесса

  • -Option Тип поиска для параметров -Title, -ProcessName

    • EQ Точное совпадение

    • сEQ Точное совпадение с учетом регистра

    • match(по умолчанию) поиск по части имени или шаблону регулярного выражения

    • cMatch поиск по части имени или шаблону регулярного выражения с учетом регистра

Возвращаемое значение

  • Список.

    handletitle
    Хендл окнаИмя окна

Примеры

  1. Найти окно, свернуть его и потом развернуть

    Wake up, Neo, select all

    $h = Find-Window -Title "блокнот" # найти окно, в имени которого содержится слово блокнот
    if(!$h){ # если окно не найдено
    Write-Host "Окно не найдено" -ForegroundColor Red
    Stop-Script # остановить скрипт
    }
    Show-Window $h.handle[0] -State Minimize # свернуть окно
    Start-Sleep 2 # пауза 2 секунды
    Show-Window $h.handle[0] -State Restore # восстановить (развернуть) окно
  2. Найти окно Paint и нарисовать линию

    Wake up, Neo, select all

    $h = Find-Window -ProcessName "mspaint" # найти окно Paint по имени процесса
    if(!$h){
    Write-Host "Окно Paint не найдено" -ForegroundColor Red
    Stop-Script # остановить скрипт
    }

    $hPen = Get-ChildWindows $h.handle[0] | Where-Object {$_.Class -eq "NetUIHWND"} # найти окно панели инструментов
    Click-Mouse 355, 75 -Handle $hPen.Handle[0] -Event # выбрать карандаш
    Start-Sleep -m 500 # пауза 0.5 сек

    $hEdit = Get-ChildWindows $h.handle[0] | Where-Object {$_.Class -match "Afx:.*"} # найти окно редактора по части класса окна
    # нарисовать линию
    Click-Mouse 100, 50 -Down -Handle $hEdit.Handle[0] -Event
    Move-Cursor 400, 300 -Handle $hEdit.Handle[0] -Event
    Click-Mouse 400, 300 -Up -Handle $hEdit.Handle[0] -Event

    # нарисовать линию
    Drag-WithMouse -From 100, 200 -To 400, 50 -Handle $hEdit.Handle[0] -Event
  3. Ожидать запуск окна.

    Wake up, Neo, select all

    Clear-Host
    Start-Process notepad # запустить блокнот
    $h = 0
    while(!$h){ # ждать когда окно запустится
    $h = Find-Window -Title Блокнот
    Start-Sleep -m 100
    }
    $edit = Get-ChildWindows $h.handle[0] | Where-Object {$_.Class -eq "Edit"} # найти окно редактора блокнота

    Send-Text "Этот текст будет напечатан в блокноте" -Handle $edit.Handle
    Send-Key Tab -Handle $edit.Handle -Sleep 500 # нажать Tab и ждать 0.5 секунды
    Send-Text "Hello" -Handle $edit.Handle
    Send-Key Enter -Handle $edit.Handle -Sleep 1000 # нажать Tab и ждать 1 секунду