Find-Window
Найти указатель окна
Параметры
-Title Заголовок целиком/часть заголовка/регулярное выражение
-Class Класс окна/регулярное выражение
-ProcessName Имя процесса
-wPID ID процесса
-Option Тип поиска для параметров -Title, -ProcessName
EQ Точное совпадение
сEQ Точное совпадение с учетом регистра
match(по умолчанию) поиск по части имени или шаблону регулярного выражения
cMatch поиск по части имени или шаблону регулярного выражения с учетом регистра
Возвращаемое значение
Список.
handle title Хендл окна Имя окна
Примеры
-
Найти окно, свернуть его и потом развернуть
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 # восстановить (развернуть) окно -
Найти окно 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 -
Ожидать запуск окна.
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 секунду