Привязка скрипта к конкретному окну с использованием относительных координат.

Аватара пользователя
Fors1k
Администратор
Сообщения: 57
Зарегистрирован: 08 июн 2021, 17:23
Благодарил (а): 4 раза
Поблагодарили: 3 раза

Re: Привязка скрипта к конкретному окну с использованием относительных координат.

Сообщение Fors1k »

Nobodykillme писал(а): 20 апр 2022, 16:51

Попробовал отправить на бота скриншоты
название скриншотам давать по типу "Дата_время".

По работе с датой посмотрите информацию здесь Date
Добавил возможность задать имя для отправляемого скриншота.
Обновите psClick (Update-Psclick), и попробуйте:

Wake up, Neo, select all

$img = Get-Image -Screen
$name = Get-Date -Format "dd.MM.yyyy_HH.mm.ss"
Send-TelegramImage $img $name
$img.Dispose()
Nobodykillme писал(а): 21 апр 2022, 14:48

Я про прямые команды отправки в tg. Похоже нет такой функции. Только если сохранять сначала на комп, а потом подгружать файлом в tg

Сначала вы получаете изображение, а потом отправляете, это несвязанные вещи=)
Команда отправки в tg отправит то изображение, которое вы сначала загрузите в память.
Получить изображение можно любым способом из данных примеров Get-Image.
Вот пример отправки скриншота по хендлу окна:

Wake up, Neo, select all

$window = (Get-Process -Id $PID).MainWindowHandle
$img = Get-Image -Handle $window
$name = Get-Date -Format "dd.MM.yyyy_HH.mm.ss"
Send-TelegramImage $img $name
$img.Dispose()
Аватара пользователя
Fors1k
Администратор
Сообщения: 57
Зарегистрирован: 08 июн 2021, 17:23
Благодарил (а): 4 раза
Поблагодарили: 3 раза

Re: Привязка скрипта к конкретному окну с использованием относительных координат.

Сообщение Fors1k »

Nobodykillme писал(а): 21 апр 2022, 14:48

у меня возникла проблема - как то криво сохраняется файл один и тот же почему то. Как будто застряло изображение в буфере, хотя в конце есть команда по очистке ($screen.Dispose() # удалить изображение). А ещё откуда то вылезает на изображение кусок окна powershell`a. хотя я его убираю в другую сторону вообще. :x

В целом код выглядит так:

Wake up, Neo, select all

$screen = Get-Image -Handle $h.handle[0]
Write-Host "Ширина: $($screen.Width)"
Write-Host "Высота: $($screen.Height)"
$date = Get-Date -Format "dd.MM.yyyy_HH.mm.ss" # получить текущую дату и время в указанном формате
$screen.Save("C:\Users\Egor\Pictures\Screenshots\$date.bmp") # сохранить скрин
$screen.Dispose() # удалить изображение
Send-TelegramFile "C:\Users\Egor\Pictures\Screenshots\$date.bmp" # отправить его в тг
Stop-Script

У меня снимок отправляется корректно. Проверял на этом примере, попробуйте:

Wake up, Neo, select all

Start notepad # запустить блокнот
Sleep 1 # подождать зупуск
$h = Find-Window -Title "блокнот" # найти окно блокнота

$screen = Get-Image -Handle $h.handle[0] # сделать снимок окна блокнота
$date = Get-Date -Format "dd.MM.yyyy_HH.mm.ss" # получить текущую дату и время в указанном формате
$fileName = "$home\Desktop\$date.png"
$screen.Save($fileName) # сохранить скрин
$screen.Dispose() # удалить изображение из памяти

Send-TelegramFile $fileName # отправить его в тг

Remove-Item $fileName # удалить изображение с компьютера

Если опять не будет получаться, покажите скриншот, на котором произошло наложение другого окна.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: Malcolmpiers и 6 гостей