Показать полную графическую версию : создание скриншота и его моментальная отправка на почтовый ящик
Подскажите, как создать .bat (не PowerShell скрипт!!! на моей системе его нет)
чтобы он делал скриншоты когда сработает планировщик задач и отправлял их на почту. (моя почта@моя почту.ру)
т.е. батник будет запускаться через планировщик задач . Время в планировщике наступило и он заскриншотил и отправил мне на почту
Все решения что нашел в инете или платные или не рабочие.
kontox, никак
по большому счёту возможности bat ограничиваются элементарными операциями с файлами
для всего остального нужно запускать внешние (сторонние) приложения
без установки дополнительного ПО вы задачу не решите, но это противоречит вашей позиции: "на моей системе его нет"
DJ Mogarych
30-08-2019, 19:22
на моей системе его нет »
что за система?
Вариант - использовать сторонние утилиты, управляемые из командной строки: ImageMagick для снятия скринштов, Blat для отправки писем.
ImageMagick для снятия скринштов »
Сильно толстое оно для таких целей, как по мне. nircmd.exe/nircmdc.exe () — проще будет.
nircmd.exe savescreenshot "scr~$currdate.MM_dd_yyyy$-~$currtime.HH_mm_ss$.png"
не PowerShell скрипт!!! на моей системе его нет »
Устанавливайте его на свою систему.
DJ Mogarych
30-08-2019, 22:27
Да, nirsoft - великий человек, для чего он только утилит не понаписал.
Интересно, что это за система такая, Powershell стоит везде, начиная с Windows XP.
Да, nirsoft - великий человек, для чего он только утилит не понаписал. »
Хе-хе, Nir Sofer (https://www.nirsoft.net/about_nirsoft_freeware.html) — человек и пароход ;).
Powershell стоит везде, начиная с Windows XP. »
Не, с Vista. На Windows XP нужно «ручками» загружать и разворачивать.
Busla, Ну я не так категорично настроен, Я могу PS поставить.
Iska, эту утилитку я видел, но где она отправляет на меил?
Busla, Если я у себя поставлю PS можно будет делать скрин и на меил отправлять?
greg zakharov
31-08-2019, 13:34
kontox, если на PS можно эксплойты ваять, то как по вашему, можно ли с его помощью делать скрины, отправлять на почту?
DJ Mogarych, Nir Sofer никакой не великий человек, ровно как и реверсер из него аховый. Если вы пошукаете различные площадки для реверсеров, можете в этом убедиться лично. А то, что он наговнокодил по большей части бесполезно. Другое дело авторы WinDbg, IDA или покойного ныне SoftIce, - вот это действительно башковитые люди.
Iska, эту утилитку я видел, но где она отправляет на меил? »
Нигде. Только создание скриншота. Для отправки потребуется что-то ещё — например, вышеупомянутый blat, або MailSend. Именно потому рекомендуют PowerShell.
А то, что он наговнокодил по большей части бесполезно. »
А народ-то не знает. И пользует :).
greg zakharov
31-08-2019, 15:01
А народ-то не знает. И пользует.Чувство стадности оно такое.
Нигде. Только создание скриншота. Для отправки потребуется что-то ещё — например, вышеупомянутый blat, або MailSend. Именно потому рекомендуют PowerShell.Можно и curl'ом слать мессаги.
Чувство стадности оно такое. »
Да, да — «Миллионы мух не могут ошибаться», я в курсе применения этого тезиса к месту и не к месту. Я с удовольствием посмотрю неговённую замену InsideClipboard, NirCmd, USBDeview и всякого прочего.
Можно и curl'ом слать мессаги. »
Можно и микроскопом гвозди забивать. Но молотком выйдет всё же лучше, не?
kontox, у меня получилось примерно так (на примере Яндекса, скриншот делается с первого монитора):
[Reflection.Assembly]::LoadWithPartialName('System.Drawing') | Out-Null
Start-Sleep -Milliseconds 250
$oRectangle = ([System.Windows.Forms.Screen]::AllScreens)[0].Bounds
$oBitmap = [System.Drawing.Bitmap]::new($oRectangle.Width, $oRectangle.Height)
$oGraphics = [System.Drawing.Graphics]::FromImage($oBitmap)
$oGraphics.CopyFromScreen($oRectangle.Location, [System.Drawing.Point]::Empty, $oRectangle.Size)
$oMemoryStream = [System.IO.MemoryStream]::new()
$oBitmap.Save($oMemoryStream, [System.Drawing.Imaging.ImageFormat]::Png)
$oMemoryStream.Seek(0, [System.IO.SeekOrigin]::Begin) | Out-Null
$oMailMessage = New-Object -TypeName 'Net.Mail.MailMessage'
$oMailMessage.From = 'ОтКого@yandex.ru'
$oMailMessage.To.Add('Кому@mail.ru')
$oMailMessage.SubjectEncoding = [System.Text.Encoding]::Unicode
$oMailMessage.Subject = "Screenshot at $(Get-Date)"
$oMailMessage.IsBodyHTML = $true
$oMailMessage.BodyEncoding = [System.Text.Encoding]::Unicode
$oMailMessage.Body = "<h2>Hello World!</h2></br>Screenshot at $(Get-Date) here."
$oContentType = New-Object -TypeName 'Net.Mime.ContentType' -Property @{
MediaType = "image/png"
Name = "Screenshot at $(Get-Date).png"
}
$oAttachment = New-Object -TypeName 'Net.Mail.Attachment' -ArgumentList $oMemoryStream, $oContentType
$oMailMessage.Attachments.Add($oAttachment)
$oSmtpClient = New-Object -TypeName 'Net.Mail.SmtpClient' -ArgumentList 'smtp.yandex.ru', 587 #465
$oSmtpClient.EnableSsl = $true
$oSmtpClient.Credentials = New-Object -TypeName 'System.Net.NetworkCredential' -ArgumentList 'ОтКого@yandex.ru', 'Пароль'
$oSmtpClient.Send($oMailMessage)
$oMemoryStream.Close()
$oMemoryStream.Dispose()
$oGraphics.Dispose()
$oBitmap.Dispose()
$oAttachment.Dispose()
$oMailMessage.Dispose()
$oSmtpClient.Dispose()
greg zakharov
31-08-2019, 17:29
Я с удовольствием посмотрю неговённую замену InsideClipboard, NirCmd, USBDeview и всякого прочего.Ваши слова даже на аргумент не тянут. Дело в том, что Нир фигачит все путем тупого копипаста, чем, собственно, и объясняется несчетное количество багов в его высерах, пожатых к тому же UPX. Неудивительно, что весь этот кал детектируется большинством антивирусов и все причитания Нира о ложных срабатываниях аверов доставляют.
Можно и микроскопом гвозди забивать. Но молотком выйдет всё же лучше, не?То есть для вас задница то же, что и лицо?
Ваши слова даже на аргумент не тянут. »
Вы спорите с чем-то своим. Если аргумент собеседника неудобен — просто отбросим его.
Дело в том, что Нир фигачит все путем тупого копипаста, чем, собственно, и объясняется несчетное количество багов в его высерах, пожатых к тому же UPX. Неудивительно, что весь этот кал детектируется большинством антивирусов и все причитания Нира о ложных срабатываниях аверов доставляют. »
Предположим, что фигачит. Предположим, что копипастом. Предположим, что есть несчётное количество багов. Предположим, что UPX — это вселенское зло. Но каким макаром отсюда должны следовать срабатывания антивирусов — я не понимаю. И Вам следует перечитать-таки его причитания, ибо Вы не поняли, о чём именно они были.
То есть для вас задница то же, что и лицо? »
Поясните.
Iska,
я запускаю (powershell 6 x64)
получаю такую ошибку
PS C:\Users\trader\Desktop> screen.ps
screen.ps : The term 'screen.ps' is not recognized as the name of a cmdlet, fu
tion, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the pat
is correct and try again.
At line:1 char:1
+ screen.ps
+ ~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (screen.ps:String) [], CommandNotFou
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [3,General]: The command screen.ps was not found, but does exist in
he current location. PowerShell does not load commands from the current locati
by default. If you trust this command, instead type: ".\screen.ps". See "get-
lp about_Command_Precedence" for more details.
PS C:\Users\trader\Desktop>
Я правильно сделал расширение .ps? или оно должно быть другим?
если что вот мой файлик с моими мейлами
яндекс, у меня настроен через outlook. работает прием отправка
Я правильно сделал расширение .ps? или оно должно быть другим? »
Попробуйте «.ps1».
Iska, сделал, что то не помогло. А что значит эта ошибка?
PowerShell 6.2.2
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
PS C:\Users\trader> cd desktop
PS C:\Users\trader\desktop> screen.ps1
screen.ps1 : The term 'screen.ps1' is not recognized as the name of a cmdlet, fu
nction, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ screen.ps1
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (screen.ps1:String) [], CommandNotFoun
dException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [3,General]: The command screen.ps1 was not found, but does exist in
the current location. PowerShell does not load commands from the current locatio
n by default. If you trust this command, instead type: ".\screen.ps1". See "get-
help about_Command_Precedence" for more details.
PS C:\Users\trader\desktop>
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.