SikuliX에 의한 스크린 샷 (고행)의 효율화에 대해

8402 단어 SikuliX테스트

목적



SikuliX1.1.4에서는 스크린을 감시해 변경이 생기면 스크린 캡쳐를 취하는 것이 용이하게 가능하다.
이것에 의해, 스크린 캡쳐의 고행의 노력을 줄일 수 있는지를 검토한다.

Sikulix 1.1.4에 대해서는 아래 참조
htps : // 이 m / 미마 _ 있거나 / ms / 8f653042 아 c9140 에 5023f

코드


from datetime import datetime
import threading
import time
import sys
# 保存先のフォルダ
captureFolder = "C:\\tool\\sikulix\\log\\"

# 50ピクセル変更したらchangedを呼び出す。ここで調整する
changePixel = 50

threadWaitStopFunc = None
stopFlg = False


# 停止用のスレッド
def waitStopFunc():
    global stopFlg
    popup(u"キャプチャを停止する場合は [OK]を押下してください")
    stopFlg = True

# 範囲内の変更発生時のイベント
def changed(event):
    global stopFlg
    global threadWaitStopFunc
    print ('changed' + datetime.now().strftime('%Y%m%d_%H%M%S%f')[:-3])
    try:
        capture(selRegion, captureFolder, datetime.now().strftime('%Y%m%d_%H%M%S%f')[:-3])
    except:    
        print(sys.exc_info())
        stopFlg = True

# 範囲選択が表示されてRegionを選択する
selRegion = selectRegion(u"select caputure region.")
if selRegion is None:
    exit(1)

selRegion.onChange(changePixel, changed)

# 監視 alt-shift-c
selRegion.observeInBackground(FOREVER); 

threadWaitStopFunc = threading.Thread(target=waitStopFunc)
threadWaitStopFunc.start()

while True:
    if stopFlg:
        break
    wait(1)

popup(u'キャプチャが停止しました')

selRegion.stopObserver()

※화상 파일의 작성에 실패했을 경우는 「캡쳐가 정지했습니다」라고 하는 윈도우가 표시되므로, 그 경우는 보존 폴더를 재검토한다.

사용해보기


  • 실행하면 구형을 선택할 수 있으므로, 감시하고 싶은 범위를 선택한다.
  • 이하의 팝업이 표시되므로 OK를 누르지 않고 방해가 되지 않는 위치에 어둡게 해 둔다

    감시를 종료하고 싶으면 OK를 실행하여 처리를 정지한다.
  • 감시 대상의 화면을 조작한다.
    이번에는 명령 프롬프트에서 다음 작업을 수행했습니다.
    · dir 명령 실행
    · 속성 표시
  • 3의 조작 후에 작성된 화상 파일











  • 사용감



    ・한글자씩의 키 누르기나, 윈도우가 표시되는 과정의 반투명의 것도 캡쳐 되어 버린다
    ・그렇지만, 한 장 한 장 마음을 담아 스크린샷을 찍는 고행보다는 낫습니다.
     (나중에 솎아낼까, 큰 양이 아니면 그대로 납품으로 좋을 것)
    ・같은 것은 동영상으로도 할 수 있다.
    단지, 화상으로 보존하는 어드밴티지로서는 말풍선의 편집의 용이성.

    감동적인 툴이지만, 무의미하다. ※
    ※SikuliX1.1.4는 64bit의 Java가 필요하므로, 이런 것이 정말로 필요한 직장은 어차피, 32비트 머신 밖에 지급되고 있기 때문에 사용할 수 없다. 어쩔 수 없어.

    좋은 웹페이지 즐겨찾기