基于 Electron 开发即时通讯 APP,截图功能后期势必成为一个刚需的功能。Webkit 中的 desktopCapture API 只能截取当前窗口的画面,用户的实际需求还是需要全屏选取范围截取。如果需要一个跨平台的插件实现,可能需要使用原生开发出一个截图应用,然后再暴露给 Electron 调用。
screencapture -h screencapture: illegal option -- h usage: screencapture [-icMPmwsWxSCUtoa] [files] -c force screen capture to go to the clipboard -b capture Touch Bar - non-interactive modes only -C capture the cursor as well as the screen. only in non-interactive modes ... ...
screencapture 程序提供了命令行式的调用方式,我们只需要在 Electron 的主进程中使用 NodeJS 运行我们需要执行的命令就可以了。 二次封装有利于我们后期的维护和替换,很高兴轮子已经有人帮我们造好了:rogerbf/macos-screencapture
我们的需求希望用户截图后,截取的图片需要保存在系统的剪切板和指定的目录中。但是发现使用 -c 后,不能同时保存至指定的目录中,那只能曲线救国了,先保存在指定的目录中,然后使用 clipboard API 写入到剪切板中。