치즈가 자동으로 사진을 찍고 종료하도록 하세요

치즈가 자동으로 사진을 찍고 종료하도록 하세요

저는 웹캠 소프트웨어로 Cheese를 사용합니다. 나는 그것을 얻는 방법을 찾으려고 노력하고 있습니다 :

  • 시작
  • 이미지를 클릭하세요
  • 출구

스크립트를 실행할 때. 스크립트는 권한을 요청하거나 중단되어서는 안 됩니다. 지금까지,

#!/bin/bash 
cheese

1단계만 하면 되겠네요. 2단계와 3단계는 어떻게 수행하나요? 문서 파일에는 그러한 옵션이 언급되어 있지 않으며 소스 코드를 변경하고 싶지 않습니다. (카메라도 상관없어요)

답변1

바라보다! 2단계와 3단계는 다음과 같습니다.

시간이 매우 중요하기는 하지만 이 방법은 효과가 있습니다. 적절하다고 생각되는 대로 조정하고, 무슨 일이 일어나고 있는지 확인할 수 있도록 적절하게 설명을 작성해 보세요.

당신은 설치해야합니다xdo 도구이를 위해 사진을 찍고 종료하기 위한 키 누르기를 시뮬레이션합니다(패키지'xdo 도구')

아 문 닫아야 해'역수' 기능을 사용하지 않으면 실제로 촬영하기 전에 CTRL-Q(종료)를 눌러 프로그램을 종료할 수 있습니다.


#!/bin/bash
#
# L Nix <[email protected]>
# takeapic : take a photo with Cheese, using default settings, then exit
#
# start cheesing (2> because mine whines about cheesy stuff (ha!))
cheese 2>/dev/null &
# give WM some time to start up program (fails without this)
sleep 5
# set so we can determine if valid window(s) exist(s)
WINDOWIDS=""
# wait for up to 90 seconds (tweak this)
COUNTDOWN=90
while [ ${COUNTDOWN} -gt 0 ]; do
    WINDOWIDS=$(xdotool search --class "cheese" 2>/dev/null)
    if [ -n "${WINDOWIDS}" ]; then
        break
    fi
    sleep 1
    COUNTDOWN=$(( ${COUNTDOWN} - 1 ))
done
# did we get anything?
if [ -z "${WINDOWIDS}" ]; then
    echo "Cheese never started, something's wrong"
    exit 1
fi
# the shutter button is ALT-T
for WIDS in ${WINDOWIDS}; do
    # if you combine these like xdotool allows, it fails
    xdotool windowfocus ${WIDS} 2>/dev/null
    xdotool key alt+t 2>/dev/null
done
# pause a moment while taking photo
sleep 1
# now CTRL-Q out of the application
for WIDS in ${WINDOWIDS}; do
    xdotool windowfocus ${WIDS} 2>/dev/null
    xdotool key ctrl+q 2>/dev/null
done
#

관련 정보