昨天的博文写了定时记录操作系统行为,其实说白了就是抓取了击键的记录和对应窗口的标题栏,而很多应用程序标题栏又包含当时记录的文件路径和文件名,用这种方式可以大致记录操作了哪些程序,打开了哪些文件,以及敲击了哪些按键。事实上这样记录操作系统的行为显得相对单薄一点,因为记录的内容不太形象,对于新手来说太过于隐晦了,对于人类来说,图像会比文字更加有利于用户理解。当操作系统不方便装屏幕记录软件,但又需要看已经登录用户在干什么的时候,用PowerShell的脚本来实现定时抓取图像的方式记录操作,查看图像就知道登陆用户做了什么,当然你存放图片的目录要隐蔽,不要让用户发现了为好。

     当然对于在学校计算机系的屌丝们,这个功能也可以用来了解自己的女神有什么喜好了。什么?咋把脚本安装到女神的电脑里?咋把抓的图片返回给你?拜托,这么简单的问题,还需要我帮你找答案么?女神的电脑坏了,通常都会找一个熟悉电脑软硬件的计算机系的童鞋来修的,修的时候悄悄动点手脚。图片返回的问题呢,完全可以定时抓取,然后抓取一定数量之后打包发到指定邮箱,然后删除本地图片嘛。什么?不知道PowerShell咋发邮件…你妹的,用System.Net.Mail.MailMessage组件调用SMTP发送邮件你不会?我以前写过类似文章的…好吧,送佛送到西,自己去看吧《使用PowerShell通过Smtp发送邮件》。还有就是写的脚本务必要加密,至于加密方式方法嘛,改天吧,改天专门写一篇文章写关于PowerShell脚本加密,这种事情嘛,如果被女神发现鸟,那可是吃不了兜着走的事啊。还有出去别告诉别人,我给你出的这主意,还有隐私的东西,自己把握好度,如果警察蜀黍请你去喝茶了可就不好玩了。本故事纯属虚构,如有雷同纯属巧合,本人只提供创意,如果具体实施被女神打破头,或者被警察蜀黍请去喝茶了,本人概不负任何法律责任哈。嘿嘿,不多扯了,先上今天的定时抓取屏幕图像的方法。
    
     其实方法不复杂,写了一个抓取屏幕的函数,定时执行,将抓取的图片存入指定位置,如果达到终止的时间,结束执行.代码不复杂,有看不懂的兄弟可以留言,我帮你解答。

接下来上代码:

复制代码 代码如下:
 =====文件名:Get-TimedScreenshot.ps1=====
function Get-TimedScreenshot {
<#
    Author:fuhj(powershell#live.cn ,http://fuhaijun.com)
    Takes screenshots at a regular interval and saves them to disk.
.PARAMETER Path
    Specifies the folder path.
.PARAMETER Interval
    Specifies the interval in seconds between taking screenshots.
.Parameter EndTime
    Specifies when the script should stop running in the format HH-MM
.Example
    Get-TimedScreenshot -Path c:\temp\ -Interval 30 -EndTime 14:00
#>

    [CmdletBinding()] Param(
        [Parameter(Mandatory=$True)]
        [ValidateScript({Test-Path -Path $_ })]
        [String] $Path,

        [Parameter(Mandatory=$True)]
        [Int32] $Interval,

        [Parameter(Mandatory=$True)]
        [String] $EndTime
    )

    #Define helper function that generates and saves screenshot
    Function Get-Screenshot {
       $ScreenBounds = [Windows.Forms.SystemInformation]::VirtualScreen
       $ScreenshotObject = New-Object Drawing.Bitmap $ScreenBounds.Width, $ScreenBounds.Height
       $DrawingGraphics = [Drawing.Graphics]::FromImage($ScreenshotObject)
       $DrawingGraphics.CopyFromScreen( $ScreenBounds.Location, [Drawing.Point]::Empty, $ScreenBounds.Size)
       $DrawingGraphics.Dispose()
       $ScreenshotObject.Save($FilePath)
       $ScreenshotObject.Dispose()
    }
    Try {

        #load required assembly
        Add-Type -Assembly System.Windows.Forms           

        Do {
            #get the current time and build the filename from it
            $Time = (Get-Date)

            [String] $FileName = "$($Time.Month)"
            $FileName += '-'
            $FileName += "$($Time.Day)"
            $FileName += '-'
            $FileName += "$($Time.Year)"
            $FileName += '-'
            $FileName += "$($Time.Hour)"
            $FileName += '-'
            $FileName += "$($Time.Minute)"
            $FileName += '-'
            $FileName += "$($Time.Second)"
            $FileName += '.png'

            #use join-path to add path to filename
            [String] $FilePath = (Join-Path $Path $FileName)

            #run screenshot function
            Get-Screenshot

            Write-Verbose "Saved screenshot to $FilePath. Sleeping for $Interval seconds"

            Start-Sleep -Seconds $Interval
        }

        #note that this will run once regardless if the specified time as passed
        While ((Get-Date -Format HH:mm) -lt $EndTime)
    }

    Catch {Write-Error $Error[0].ToString() + $Error[0].InvocationInfo.PositionMessage}
}

执行方式,如下图所示:

PowerShell小技巧之定时抓取屏幕图像

执行效果,会在指定的目录,按照时间间隔生成桌面抓图,类似如下图所示.

PowerShell小技巧之定时抓取屏幕图像

哥,只能帮你到这了!兄弟们好自为之吧!

标签:
PowerShell小技巧,定时,抓取,屏幕图像

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“PowerShell小技巧之定时抓取屏幕图像”
暂无“PowerShell小技巧之定时抓取屏幕图像”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。