python - 从第二个桌面抓取屏幕截图
问题描述
我正在使用此代码在 while 循环中抓取屏幕截图:
filename = datetime.today().strftime('%Y%m%d_%H%M%S')
im=ImageGrab.grab()
im.save('saved/'+filename+'.png')
Windows 10 能够拥有更多桌面,例如我有两个桌面(在任务视图图标下/没有两个显示器,但有两个 Windows 桌面,此功能来自 Win10)。现在我想在第二个桌面上运行我的程序,并每隔几秒钟从第二个桌面截取屏幕截图。但是当我让它在第二个桌面上运行然后我切换到第一个桌面(我通常工作的地方)时,就会抓取第一个桌面的屏幕截图。我应该如何将它用于我的场景?
解决方案
我专门为此用途创建了MSS模块:
# coding: utf-8
from datetime import datetime
from time import sleep
from mss import mss
with mss() as sct:
while 'capturing':
filename = datetime.today().strftime("%Y%m%d_%H%M%S.png")
sct.shot(mon=2, output=filename)
sleep(1)
监视器编号设置在sct.shot(mon=N, ...)
哪里mon
是操作系统看到的监视器编号。这意味着显示器 2 可以成为您的 1,所以请尝试一下,让我知道您的想法。
推荐阅读
- javascript - 模块“ng-particles”没有导出成员“容器”
- python - 如何使用 Telegram API(Telethon) 向未保存的号码发送消息
- java - 我的 Spring 框架上的 HttpMessageNotReadableException 错误
- excel - 字符串中的 Excel 字符串查找
- javascript - 如何在单个请求中发布 PDF 和 FormGroup?
- python - Python 中的标准注释
- python - 如何在python中使用可以支持不同大小数组的二维数组?
- r - 尝试使用 casewhen 基于另一列中字符的第一个单词在 Rstudio 中添加一列
- typescript - 更新到 v2.xx 后,PieChartProps 消失了
- .net - Azure DevOps 存储库,共享拉取请求