AppleScript 응용 프로그램 활성화


13

display dialog("test")"Finder"응용 프로그램이 현재 포커스 / 액티브 인 경우에만 AppleScript를 사용하여 코드 (예 :) 를 실행할 수 있습니다 .


음, 응용 프로그램이 이미 활성화되어 있으면 다시 활성화하여 무엇을 달성하려고합니까?
Kent

stackoverflow.com/questions/3718520/… 유휴는 문제를 해결하지는 않지만 관련이 있습니다.
William

질문을 명확히해야합니다. 내 대답의 스크립트는 'works'에 대한 주어진 정의에 대해 작동합니다. 즉 Finder가 맨 앞에 있는지 여부를 정확하게보고합니다.
Tetsujin

@Tetsujin 업데이트 됨
William

Applescript 앱을 어떻게 출시 할 예정입니까? 물론 두 번 클릭하면 파인더는 항상 '마지막으로 두 번째부터 마지막으로'표시됩니다. 답을 변경 -이 스크립트 편집기에서 호출하면 작동하지만 파인더에서 더블 클릭하면, '실패'것이 제공으로 위양성
Tetsujin

답변:


18

스크립트가 스크립트 편집기에서 호출되면 다음 앱을 확인하기 위해 '탈출'되기 때문에 작동하지만 Finder가 항상 마지막 줄이므로 Finder에서 두 번 클릭하면 실패합니다.

tell application "System Events"
    set frontmostProcess to first process where it is frontmost
    set visible of frontmostProcess to false
    repeat while (frontmostProcess is frontmost)
        delay 0.2
    end repeat
    set secondFrontmost to name of first process where it is frontmost
    set frontmost of frontmostProcess to true
end tell

tell application (path to frontmost application as text)
    if "Finder" is in secondFrontmost then
        display dialog ("Finder was last in front")
    else
        display dialog (secondFrontmost & " was last in front")
    end if
end tell

후손에 대한 이전 답변을 여기에 남겨두기

처음에 질문을 제대로 읽지 않은 후 전체 답변을 수정했습니다. ;-)

tell application "System Events"
    set activeApp to name of first application process whose frontmost is true
    if "Finder" is in activeApp then
        display dialog ("test")
    else
        display dialog ("test2")
    end if
end tell

+1 제안 된 솔루션이 그대로 작동하지 않는 것 같습니다. 응용 프로그램이 열려 있고 응용 프로그램이 활성화되어 있는지 여부는 아니지만 "테스트"를받습니다.
William

다시 생각… 편집 답변
Tetsujin

다시 작성, 이제 데스크탑으로 돌아 왔습니다. 이제 여러분이 요청한 내용을 정확하게 수행합니다.
Tetsujin

2
또한 두 번째 대화 상자 명령을 대치 display dialog (activeApp)하여 스크립트가 가장 앞면이라고 생각하는 것을 정확하게 확인할 수 있습니다.
Kent

1
일부 앱의 앱 이름 (예 tell application "app_name":)은 프로세스 이름 (예 :)과 다릅니다 set frontmost of process "app_process" to true.
BallpointBen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.