前言
如果电脑有多屏这里只截取主屏。
C#截屏
1 | public static void ScreenShot(string savePath) |
调用系统DLL
1 | using System; |
调用C++DLL
https://www.psvmc.cn/article/2021-07-08-image-cpp.html
调用三方程序
注意
这种方式截屏会导致鼠标光标现在旋转的动画,如果反复调用体验不好,我这里已更换为C#调用C++进行截屏的方式了。
使用nircmd.exe
截屏
官网:http://www.nirsoft.net/utils/nircmd.html
链接:https://pan.baidu.com/s/1AyGNHN5XM5v08gjGx3y6Dw
提取码:sytu
1 | nircmd.exe savescreenshot "d:\temp.png" |
这种方法其实各种语言都可以使用。
首先在项目下放入下载的exe路径:Tools/nircmd.exe
项目右键=>属性=>生成事件=>生成前事件命令行 添加如下
1 | xcopy /Y /i /e $(ProjectDir)\Tools $(TargetDir)\Tools |
目的是为了打包运行时能够找到 nircmd.exe
工具类
1 | using System; |
注意在压缩图片前一定要调用
1 | mps.WaitForExit(); |
这样才会在生成图片后进行压缩。