【问题标题】:Using Sikuli to take automated screenshots of a window?使用 Sikuli 自动截取窗口的屏幕截图?
【发布时间】:2021-01-31 16:19:48
【问题描述】:

这里有一个简单的问题:我想使用 Sikuli 在 Mac 上截取窗口的屏幕截图,可以通过按 CMD+SHIFT+4 然后按空格,然后单击窗口来完成。

对于 CMD+SHIFT+4 我遇到了麻烦。这不起作用:

keyDown(KEY_META)
keyDown(Key.SHIFT)
wait(1)
type("4")
wait(1)
keyUp(Key.SHIFT)
keyUp(KEY_META)

有人有什么想法吗?我对击键组合的其他途径持开放态度,例如,我知道复制这个效果很好:

type("c",KEY_META)

但是,它不接受三个参数。

【问题讨论】:

  • 在单独的窗口/应用程序中是否还有其他已知的 command-shift-4 输出?
  • 不,这是系统保留的键盘快捷键。

标签: python python-2.7 sikuli


【解决方案1】:
type("4", KeyModifier.CMD+KeyModifier.SHIFT)

或者,甚至更好:

import shutil
import os
screenshotsDir = "absolute-path-to-a-folder"
img = capture(some_region)
shutil.move(img, os.path.join(screenshotsDir, "some-name.png"))

some_region 在哪里:

some_region = SCREEN # for whole screen

someRegion = App.focusedWindow() # for the frontmost window

这样做的好处是可以控制镜头的文件名。

【讨论】:

    【解决方案2】:

    找到了一个更好的解决方案,它确实有效:

    screen = Screen()
    scr_img = screen.capture(screen.getBounds())
    scr_img.save("C:\Screenshots", "screenshot")
    

    Screen.capture() 返回一个带有方法的 ScreenImage 类的实例:'save'、'saveInBundle'、'getFile'、'getFilename'。方法 save() 将唯一编号添加到提供的前缀参数。

    【讨论】:

      猜你喜欢
      • 2011-06-12
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多