使用python捕获Linux中正在运行的程序的屏幕截图

时间:2019-06-20 20:25:24

标签: linux python-3.x screenshot

是否存在使用其PID捕获python中正在运行的桌面应用程序的屏幕截图的任何可能方法。 该应用程序是从python程序中启动的。

我对Windows中的win32gui很熟悉,但是我不知道它在Linux中是替代方法。 Win32gui可以通过其名称查找正在运行的程序的窗口。如果无法使用PID解决方案,在Linux中有什么方法可以做到这一点。

1 个答案:

答案 0 :(得分:0)

最后,我明白了。实际上,有一个名为Xlib(用于python的X11 API)的库,但是它的文档非常差。因此,浪费时间是不值得的。如果您使用的是Linux,则使用简单的bash命令来获取正在运行的桌面应用程序的屏幕截图。代码如下,

JMSMessage class: jms_map
  JMSType:          null
  JMSDeliveryMode:  2
  JMSDeliveryDelay: 0
  JMSDeliveryTime:  0
  JMSExpiration:    0
  JMSPriority:      4
  JMSMessageID:     ID:414d51204d454d5154433120202020205ccc4b272634404a
  JMSTimestamp:     1562783439854
  JMSCorrelationID: null
  JMSDestination:   queue://- INFO IS THERE 
  JMSReplyTo:       null
  JMSRedelivered:   false
    JMSXAppID: WebSphere MQ Client for Java
    JMSXDeliveryCount: 1
    JMSXUserID: apmqstc     
    JMS_IBM_Character_Set: UTF-8
    JMS_IBM_Encoding: 273
    JMS_IBM_Format: MQSTR   
    JMS_IBM_MsgType: 8
    JMS_IBM_PutApplType: 28
    JMS_IBM_PutDate: 20190710
    JMS_IBM_PutTime: 18303986

对于此安装wmctrl。如果您不知道应用程序名称的用途,

import os 
os.system("wmctrl -a Application_Name")
os.system("gnome-screenshot -w -f filename.png")

它将列出所有打开的桌面应用程序。