佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > PowerShell小技巧之定時(shí)抓取屏幕圖像

PowerShell小技巧之定時(shí)抓取屏幕圖像

熱門標(biāo)簽:網(wǎng)站排名優(yōu)化 呼叫中心市場(chǎng)需求 百度競(jìng)價(jià)排名 Linux服務(wù)器 AI電銷 鐵路電話系統(tǒng) 服務(wù)外包 地方門戶網(wǎng)站

昨天的博文寫了定時(shí)記錄操作系統(tǒng)行為,其實(shí)說(shuō)白了就是抓取了擊鍵的記錄和對(duì)應(yīng)窗口的標(biāo)題欄,而很多應(yīng)用程序標(biāo)題欄又包含當(dāng)時(shí)記錄的文件路徑和文件名,用這種方式可以大致記錄操作了哪些程序,打開了哪些文件,以及敲擊了哪些按鍵。事實(shí)上這樣記錄操作系統(tǒng)的行為顯得相對(duì)單薄一點(diǎn),因?yàn)橛涗浀膬?nèi)容不太形象,對(duì)于新手來(lái)說(shuō)太過(guò)于隱晦了,對(duì)于人類來(lái)說(shuō),圖像會(huì)比文字更加有利于用戶理解。當(dāng)操作系統(tǒng)不方便裝屏幕記錄軟件,但又需要看已經(jīng)登錄用戶在干什么的時(shí)候,用PowerShell的腳本來(lái)實(shí)現(xiàn)定時(shí)抓取圖像的方式記錄操作,查看圖像就知道登陸用戶做了什么,當(dāng)然你存放圖片的目錄要隱蔽,不要讓用戶發(fā)現(xiàn)了為好。

     當(dāng)然對(duì)于在學(xué)校計(jì)算機(jī)系的屌絲們,這個(gè)功能也可以用來(lái)了解自己的女神有什么喜好了。什么?咋把腳本安裝到女神的電腦里?咋把抓的圖片返回給你?拜托,這么簡(jiǎn)單的問(wèn)題,還需要我?guī)湍阏掖鸢该??女神的電腦壞了,通常都會(huì)找一個(gè)熟悉電腦軟硬件的計(jì)算機(jī)系的童鞋來(lái)修的,修的時(shí)候悄悄動(dòng)點(diǎn)手腳。圖片返回的問(wèn)題呢,完全可以定時(shí)抓取,然后抓取一定數(shù)量之后打包發(fā)到指定郵箱,然后刪除本地圖片嘛。什么?不知道PowerShell咋發(fā)郵件…你妹的,用System.Net.Mail.MailMessage組件調(diào)用SMTP發(fā)送郵件你不會(huì)?我以前寫過(guò)類似文章的…好吧,送佛送到西,自己去看吧《使用PowerShell通過(guò)Smtp發(fā)送郵件》。還有就是寫的腳本務(wù)必要加密,至于加密方式方法嘛,改天吧,改天專門寫一篇文章寫關(guān)于PowerShell腳本加密,這種事情嘛,如果被女神發(fā)現(xiàn)鳥,那可是吃不了兜著走的事啊。還有出去別告訴別人,我給你出的這主意,還有隱私的東西,自己把握好度,如果警察蜀黍請(qǐng)你去喝茶了可就不好玩了。本故事純屬虛構(gòu),如有雷同純屬巧合,本人只提供創(chuàng)意,如果具體實(shí)施被女神打破頭,或者被警察蜀黍請(qǐng)去喝茶了,本人概不負(fù)任何法律責(zé)任哈。嘿嘿,不多扯了,先上今天的定時(shí)抓取屏幕圖像的方法。
    
     其實(shí)方法不復(fù)雜,寫了一個(gè)抓取屏幕的函數(shù),定時(shí)執(zhí)行,將抓取的圖片存入指定位置,如果達(dá)到終止的時(shí)間,結(jié)束執(zhí)行.代碼不復(fù)雜,有看不懂的兄弟可以留言,我?guī)湍憬獯稹?/p>

接下來(lái)上代碼:

復(fù)制代碼 代碼如下:

 =====文件名: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}
}

執(zhí)行方式,如下圖所示:

執(zhí)行效果,會(huì)在指定的目錄,按照時(shí)間間隔生成桌面抓圖,類似如下圖所示.

哥,只能幫你到這了!兄弟們好自為之吧!

您可能感興趣的文章:
  • PowerShell小技巧之使用New-Module命令動(dòng)態(tài)創(chuàng)建對(duì)象
  • Powershell小技巧之編輯Hosts文件
  • Powershell小技巧之獲取對(duì)象可變的特征
  • PowerShell小技巧之實(shí)現(xiàn)文件下載(類wget)
  • PowerShell小技巧之執(zhí)行SOAP請(qǐng)求
  • Powershell小技巧之創(chuàng)建一個(gè)新對(duì)象

標(biāo)簽:蘭州 崇左 衡水 黃山 銅川 仙桃 湘潭 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PowerShell小技巧之定時(shí)抓取屏幕圖像》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    密云县| 玉树县| 蓬溪县| 龙州县| 鄄城县| 内乡县| 上饶县| 松滋市| 新巴尔虎右旗| 安图县| 科技| 东安县| 博兴县| 康平县| 光山县| 准格尔旗| 诏安县| 湛江市| 银川市| 延寿县| 会同县| 简阳市| 锡林浩特市| 宁强县| 石泉县| 麻江县| 萨迦县| 广安市| 马尔康县| 乐山市| 徐州市| 繁峙县| 威宁| 榆林市| 邵阳市| 安乡县| 饶阳县| 那坡县| 长子县| 青田县| 丁青县|