2014-10-07 8 views
0

AppleScript를 사용하여 Lightroom 5 (CC의 최신 버전)를 사용하여 간단한 자동화 도구를 개발 중입니다.AppleScript : Lightroom 5 : Smart Collection 패널의 "AXShowMenu"동작에서 상황에 맞는 메뉴가 표시되지 않음

일부 작업의 경우 스마트 컬렉션 설명을 가져 오는 것과 같은 스마트 컬렉션 패널의 상황에 맞는 메뉴가 필요합니다.

여기에 stackoverflow 및 기타 문서 및 다양한 소스에 따르면 AXShowMenu는 해당 메뉴를 표시해야합니다.

지금까지 문맥 팝업 메뉴를 만들 수 없었습니다.

UIElementInspector 및 UI Browser를 사용하여 AXShowMenu 동작이 첨부 된 요소를 찾았습니다. UI 브라우저에서 제공하는 코드를 기반으로, 나는 AppleScript로 편집기에서 실행 다음과 같은 스크립트를 가지고 :

tell application "Adobe Photoshop Lightroom 5" 
    activate 
    tell application "System Events" 
     tell process "Lightroom" 
      set frontmost to true 
      perform action 1 of static text "Smart Collections" of group 1 of row 11 of outline 1 of scroll area 1 of window 6 
      delay 2 
     end tell 
    end tell 
end tell 

tell application "AppleScript Editor" to activate 

주 당신이를 다시하려고하면, 윈도우의 수뿐만 아니라 수의 행이 다를 수 있습니다. 또한 마지막 줄은 편의성 뿐이지 만 코드와 관련이 없습니다. 애플 스크립트 편집기에서 결과 창에서

, 나는 다음과 같은 한 : 나는 액션을 호출 한 것을 의미

perform action 1 of static text "Smart Collections" of group 1 of row 11 of outline 1 of scroll area 1 of window 6 of process "Lightroom" 
    --> action "AXShowMenu" of static text "Smart Collections" of group 1 of row 11 of outline 1 of scroll area 1 of window 6 of application process "Adobe Photoshop Lightroom 5" 

합니다.

하지만 ... 아무 반응이 없습니다.

모든 통찰력, 해결 방법 등을 높이 평가합니다.

미리 감사드립니다.

답변

1

Lightroom 4에서 스크립트를 실행 해보십시오. 여기서도 같은 결과가 나타납니다.

일부 응용 프로그램은 실제 클릭이 필요합니다.

이 작업을 수행이

tell application "System Events" 
    tell process "Lightroom" 
     set frontmost to true 
     set {x, y} to position of text field 1 of row 11 of outline 1 of scroll area 1 of window 6 
     my realClick(x, y, "Right") -- "Right" = mouseRight, "Left" = mouseLeft 
     delay 0.5 
     key code 125 -- arrow down to select first menuitem 
     keystroke return -- to click on menuitem 
    end tell 
end tell 

on realClick(x, y, leftRight) 
    do shell script "/usr/bin/python -c 'import Quartz.CoreGraphics as qcg 
def mouseEvent(type): 
    e=qcg.CGEventCreateMouseEvent(None, type, (" & x & "," & y & "), r) 
    qcg.CGEventPost(qcg.kCGHIDEventTap, e) 

if \"" & leftRight & "\" is \"Left\": r= qcg.kCGMouseButtonLeft; mouseEvent(qcg.kCGEventLeftMouseDown); mouseEvent(qcg.kCGEventLeftMouseUp) 
else: r= qcg.kCGMouseButtonRight; mouseEvent(qcg.kCGEventRightMouseDown); mouseEvent(qcg.kCGEventRightMouseUp)'" 
end realClick 
+0

을 시도하고 쉽게 조정할 수 있습니다. 신속한 대응에 감사드립니다. –