Страница 2 из 2
Re: Привязка скрипта к конкретному окну с использованием относительных координат.
Добавлено: 21 апр 2022, 15:03
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()
Re: Привязка скрипта к конкретному окну с использованием относительных координат.
Добавлено: 21 апр 2022, 16:47
Fors1k
Nobodykillme писал(а): ↑21 апр 2022, 14:48
у меня возникла проблема - как то криво сохраняется файл один и тот же почему то. Как будто застряло изображение в буфере, хотя в конце есть команда по очистке ($screen.Dispose() # удалить изображение). А ещё откуда то вылезает на изображение кусок окна powershell`a. хотя я его убираю в другую сторону вообще.
В целом код выглядит так:
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 # удалить изображение с компьютера
Если опять не будет получаться, покажите скриншот, на котором произошло наложение другого окна.