前言
平时用win10需要快速截屏的时候,我都会用win+PrtSc,win10可以自动保存整个屏幕。但是幻13没有PrtSc键,只有一个fn+F6的快速调用win10内置截图与草图软件。截完图后,图片会进入粘贴板,使用的时候直接粘贴能调出来。但是如果想保存的话,得点开通知中心,然后在截图与草图中点保存,接着还得点确定。噢,我的上帝,这也太麻烦了。
最近用google终于找到了一个好办法,果然google和英语很重要呢。以下主要是自己操作记录,主要来源:https://superuser.com/questions/1436068/auto-save-script-for-windows-shift-win-s-hotkey
添加任务计划
创建一个用户登录自启动的任务,主要是启动一个用于监控截图与草图截图的Powershell脚本。
常规设置,主义要选择不存储密码,可以让脚本隐藏在后台。
设置触发,用户登录触发。
设置操作,选择启动程序,然后在目录中选择Powershell,注意中间的文件路径,参数如下设置:
-Command "Get-Content -Path 'C:\Users\MisakaXie\OneDrive\Scripts\ScreenSnipActivate.ps1' -Raw | Invoke-Expression"
作者说这些参数指示 Powershell 将脚本的行加载为一行,然后执行它,从而绕过 Windows 关于启动独立脚本的常见限制。我也不是很懂,哈哈。注意里面的路径改为自己的脚本路径,脚本代码再后面。
Powershell脚本
注意修改自己想保存截图文件的路径。
$watcher = New-Object System.IO.FileSystemWatcher;
$watcher.Path = "$HOME\AppData\Local\Packages\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\TempState\ScreenClip";
$watcher.Filter = "*.png";
$watcher.NotifyFilter = "FileName";
$watcher.EnableRaisingEvents = $true;
$action = {
$path = $Event.SourceEventArgs.FullPath;
# Last chance for a file to unlock;
Start-Sleep -Milliseconds 100;
try {
Add-Type -AssemblyName System.Drawing;
# Open image file;
$png = [System.Drawing.Image]::FromFile((Get-Item $path));
$dimensions = -join ($png.Width, " x ", $png.Height);
# Skip automatic thumbnails which are always the same size;
If ($dimensions -ne "364 x 180") {
Copy-Item -Path $path -Destination "$HOME\Pictures\Screenshots\Screenshot-$(get-date -f yyyy-MM-dd-HHmmss.fff).png";
}
} catch {
Write-Host "Problem acquiring image";
} finally {
$png.Dispose();
}
}
Register-ObjectEvent -InputObject $watcher -EventName "Created" -SourceIdentifier 'SnipGrab' -Action $action;
Remove-Item -Path (Join-Path $watcher.Path '\*') -Recurse;
while ($true){ Wait-Event -SourceIdentifier "SnipGrab"; };
接着在任务计划里启动计划,或者重启电脑即可使用,哈哈。
好了,记录到这里,以后重装幻13系统的时候能用上。
更新一个,记得关掉仅交流电启动,不然用电池的时候系统会停掉。。。。。