치즈가 자동으로 사진을 찍고 종료하게 하면

치즈가 자동으로 사진을 찍고 종료하게 하면

저는 웹캠 소프트웨어로 Cheese를 사용합니다. 나는 그것을 가질 수 있는 방법을 찾으려고 노력 중입니다.

  • 시작
  • 사진을 클릭하세요
  • 출구

스크립트가 실행될 때. 스크립트는 권한을 요청해서는 안 되며 중단되어서도 안 됩니다. 지금까지,

#!/bin/bash 
cheese

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

답변1

짜잔! 2단계와 3단계는 다음과 같습니다.

이것은 작동합니다. 비록 타이밍이 매우 중요하기는 하지만 적절하다고 생각되는 대로 조정하고, 무슨 일이 일어나고 있는지 볼 수 있도록 적절하게 설명하려고 노력했습니다.

설치해야합니다xdotool이것이 작동하려면 사진을 찍고 종료하기 위한 키 누르기를 시뮬레이션하고 있기 때문입니다(패키지 'xdotool')

아, 그리고 '' 기능을 꺼야 합니다.카운트다운' 기능을 기본 설정에 추가하세요. 그렇지 않으면 실제로 촬영하기 전에 프로그램에서 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
#

관련 정보