1

ここでの簡単な質問:Sikuliを使用して、Macのウィンドウのスクリーンショットを撮りたいと思います。これは、CMD + SHIFT + 4を押し、次にSpaceを押してから、ウィンドウをクリックすることで実行されます。

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)

ただし、3つの引数は受け入れません。

4

2 に答える 2

9
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

これには、ショットのファイル名を制御できるという利点があります。

于 2013-02-27T13:13:45.413 に答える
1

実際に機能するより良い解決策を見つけました:

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

Screen.capture()は、メソッドが「save」、「saveInBundle」、「getFile」、「getFilename」のScreenImageクラスのインスタンスを返します。メソッドsave()は、指定されたプレフィックスパラメータに一意の番号を追加します。

于 2021-01-31T08:19:48.007 に答える