powershell 防止休眠或屏幕关闭并定时截屏保存

powershell 防止休眠或屏幕关闭

01 前言

因工作需要,需要在用户的机器上进行操作,有些工作比较耗时、耗CPU,配置也不高,因而就不能用这台机器同时干太多活,又不能干盯着啥也干不了,但是一段时间不操作,机器很快就进入屏保。那么,不如搞个脚本,定时模拟键盘按下,那就不会进入屏保了,同时加一个截屏功能,还可以回看过程。

02 正文

测试环境:Windows 10

脚本如下:

@echo off
title SendKeysAndGetScreenShoot

REM 图片保存路径
set savePath=C:\screenshot

REM 间隔多少秒,最小5
set duration=10

REM 最大次数,若小于0,表示无限制,如需退出,可手工结束进程,Ctrl+C
set maxCount=0

powershell.exe -comm "$code = '[DllImport('+[char]34+'gdi32.dll'+[char]34+', EntryPoint = '+[char]34+'GetDeviceCaps'+[char]34+', SetLastError = true)] public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);';Add-Type -Name Windows -Namespace System -MemberDefinition $code;Add-Type -AssemblyName 'system.drawing','system.windows.forms'; $path = '%savePath%'; $gra = [System.Drawing.Graphics]::FromHwnd(([IntPtr]::Zero));$desk = $gra.GetHdc();$h = [Windows]::GetDeviceCaps($desk,117);$w = [Windows]::GetDeviceCaps($desk,118);$gra.Dispose();[int]$maxCnt = '%maxCount%'; if($maxCnt -lt 1){ $maxCnt = [int]::MaxValue; };[int]$dura='%duration%'; if($dura -lt 5){ $dura = 5; } $flag = $false; $cnt = 0;  do {$d = Get-Date;$ts = $d.ToString('yyyy_MM_dd_HH_mm_ss'); [System.Windows.Forms.SendKeys]::SendWait('{capslock}'); $f = Join-Path -Path $path -ChildPath ('{0}.png' -f $ts);$bitmap = [System.Drawing.Bitmap]::new($w,$h);$g = [System.Drawing.Graphics]::FromImage($bitmap);$g.CopyFromScreen(0,0,0,0,[System.Drawing.Size]::new($w,$h)); $bitmap.Save($f);$bitmap.Dispose(); $cnt++; if($cnt -ge $maxCnt){   break;} sleep -Seconds $dura; } until ($false)"

使用脚本注意:

  • powershell 5.1下测试通过

  • 代码另存为 run.bat,双击运行即可

  • 图片保存路径,应该是已存在的目录

  • 模拟键盘输入capslock键,如需其他按键可自行修改

03 后记

友情提醒:脚本仅供学习交流使用。如果是在一些比较隐私的场景下,请谨慎使用。如因使用脚本造成泄密事件,后果自负。

欢迎留言交流~
------END------

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值