工作上有一个需求,要对服务器进行一些命令行的输入,然后对结果进行截图。现在用脚本输入命令行没什么问题,主要是截图不知道应该怎么解决。大家有没有什么好的方案? 脚本现在用的是 golang
1
klo424 2023-07-05 08:28:05 +08:00
键盘上有个键是 Print Screen ,可以截全屏,无论你是远程服务器还是什么都能截下来,所见即所得。
当然,如果你的键盘没这个键,那就白废了。这也是我始终使用 108 键键盘的原因之一。 |
3
hsczy OP 是这样的 需要跑一个命令行之后截取一个结果,同时需要定位终端位置并且截图终端内容。
|
4
YZG 2023-07-05 08:55:00 +08:00 via iPhone
autohotkey 试试看,可以模拟按键触发
|
5
taygetus 2023-07-05 09:28:54 +08:00
https://github.com/faressoft/terminalizer
Record your terminal and generate animated gif images or share a web player link terminalizer.com |
6
xiaoliu926 2023-07-05 09:39:34 +08:00
先录视频,然后想截取哪一个画面都可以😎
|
7
Vraw5 2023-07-05 09:44:08 +08:00
没太懂,是要录制并回放终端嘛? script 和 scriptreplay 是不是你想要的?
|
8
Leexiaobu 2023-07-05 09:45:01 +08:00
拿到输出结果,像 snipaste 一样生成贴图
|
9
rocksolid 2023-07-05 09:48:37 +08:00
python 有 pyscreeze golang 应该也有类似的库吧
|
10
hsczy OP @xiaoliu926 那个太麻烦了吧 人工复核
|
11
fzls 2023-07-05 09:53:08 +08:00
@hsczy 写个 python 脚本,然后在 golang 里传参调用? python 应该有这类截图的包,在 golang 里先计算好区域传过去应该就可以了
|
12
tool2d 2023-07-05 09:53:21 +08:00
一般服务器都是 linux 的,返回结果也是命令行,很少有图形结果,有也是以图片文件的形式返回。
只能假设服务器是 windows 了。那就类似于自动化点击脚本了。 |
14
fzls 2023-07-05 09:54:29 +08:00
|
15
caqiko 2023-07-05 09:54:32 +08:00 1
pipe stdout to image ?
|
16
hsczy OP @Vraw5 不是的。因为我印象中见过一个脚本。用 python 写的然后后台运行终端命令之后有相应的结果截图输出。所以想看看是怎么实现的
|
17
hsczy OP @fzls 感谢,我现在的问题在于如果是单纯使用截图的话不太好定位系统呼出来的终端坐标位置。全屏截图的话其他的位置也是不需要的。为了 3.5 版本的,给的建议也是全屏截图
|
21
fzls 2023-07-05 14:28:19 +08:00
@hsczy 靠经验定位咯,或者没超过一屏幕的话,就直接在输出结果前后加一些明显的标志,然后在 python 中去使用 opencv 定位这些标志(类似于二维码三个角的大黑方块那种概念),然后确定截图范围
|
22
WuSiYu 2023-07-05 18:06:51 +08:00 via iPhone
获取文本输出然后渲染一张( doge
|
23
deiphi 2023-07-05 18:08:25 +08:00
可以使用 ffmpeg 桌面截图。
|
24
hsczy OP 感谢大家的集思广益。截图的方法因为会有好多不同的设备进行截图,所以定位终端的这个活还是比较难做的。现在的想法是将 stdout 收集然后制作截图
|