Electron截屏功能

摘要:
在Mac上,您可以通过屏幕捕获调用系统的屏幕截图功能,以实现全局快捷方式。register('CommandOrControl+Alt+Z',error)}屏幕截图-c强制将屏幕截图保存到剪贴板,而不是保存在文件中-c截屏时保持光标(仅在非交互模式下有效)-d以用户方式显示错误(不知道什么意思)-i交互模式屏幕截图,
# Electron截屏功能
window下增加该功能,可以调用三方的exe文件然后通过node.js的原生模块,execFile启动该exe文件。
mac下则可以通过screencapture 来调用系统的截屏功能来实现
globalShortcut.register('CommandOrControl+Alt+Z', function () {
  if (process.platform === 'darwin') {
    handleScreenShots()
  } else {
    screenWindow()
  }
})
function screenWindow() {
  console.log('__dirname', __dirname)
  let url = path.resolve(__dirname, '../../qq/PrScrn.exe')
  // let url = path.resolve(__dirname, '../extraResources/PrintScr.exe')

  if (isDevelopment && !process.env.IS_TEST) {
    // 生产环境
    url = path.join(__dirname, '/qq/PrintScr.exe')
  }
  console.log(url + '截图工具路径')
  let screenWindow = execFile(url)
  screenWindow.on('exit', (code) => {
    mainWindow.restore()
    if (code) console.log(code)
  })
}
function handleScreenShots() {
  exec(`screencapture -i -U -c`, (error, stdout, stderr) => {
    console.log('308', error)
  })
}

screencapture

-c 强制截图保存到剪贴板而不是文件中
-C 截图时保留光标(只在非交互模式下有效)
-d display errors to the user graphically(不知道啥意思)
-i 交互模式截取屏幕。可以是选区或者是窗口。按下空格可切换截屏模式
-m 只截取主显示器(-i模式下无效)
-M 截图完毕后,会打开邮件客户端,图片就躺在邮件正文中
-o 在窗口模式下,不截取窗口的阴影
-P 截图完毕后,在图片预览中打开
-s 只允许鼠标选择模式
-S 窗口模式下,截取屏幕而不是窗口
-t png 指定图片格式,模式是png。可选的有pdf, jpg, tiff等
-T 延时截取,默认为5秒。
-w 只允许窗口截取模式
-W 开始交互截取模式,默认为窗口模式(只是默认模式与-i不同)
-x 不播放声效
-a do not include windows attached to selected windows(不懂)
-r 不向图片中加入dpi信息
-l<windowid> 抓取指定windowid的窗口截图
-R<x,y,w,h> 抓取指定区域的截图
-B<bundleid> 截图输出会被bundleid指出的程序打开
-U 打开截屏操作版
需要注意的是,调用这个功能的时候需要系统授权,否则截屏时,将会报错,不能从window创建图片。

免责声明:文章转载自《Electron截屏功能》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】JMeter学习(三十二)属性和变量生物数据库与在线工具下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

阿里云oss对象存储在vue中的使用

阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。 OSS具有与平台无关的RESTful API接口,可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。 项目中如果...

Hibernate环境搭建

1、导入jar包 hibernate.jar  antlr-2.7.6.jar  commons-collections-3.1.jar  jta-1.1.jar  dom4j-1.6.1.jar javassist-3.4.GA.jar  slf4j-api-1.5.2.jar  slf4j-log4j12-1.5.2.jar  假设使用C3P0数据源...

【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)

  偶然的机会遇到了这个工具——Appium Studio, 在官网是这么解释的    Get your Appium testing projects going within minutesInstall Appium Studio with a single click along with all the required development...

T-sql for xml path使用(转)

参考: http://www.cnblogs.com/langhua/p/4193161.html //用法: FOR XML PATH 方法是用于将查询结果集以XML形式展示 sql: select top 5 p.ContactTypeID,p.ModifiedDate,p.Name from [Person].[ContactType] p for...

SendMessage发送WM_COMMAND消息控制另一个程序的某一个按钮

procedure TfrmMain.btnSendClick(Sender: TObject); var hCalc, h1: Cardinal; begin WinExec('calc', SW_SHOWNORMAL);//运行计算器 hCalc := FindWindow('SciCalc', nil);...

ORACLE的SPFILE与PFILE

    ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型。它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。 初始化参数文件(Initialization Parameters...