AppleScript 응용 프로그램의 "종료"버튼이 열린 대화 상자를 무시 (즉, 취소) 할 수 있습니까?


2

내가 언급 한 문제를 목격하려면 다음 단계를 수행하십시오.

  1. 하나의 display dialog대화 상자 만 포함 된 AppleScript를 생성하십시오 .

  2. 이 스크립트를 .app 파일로 저장하십시오.

  3. .app 파일을 실행하십시오.

파일의 Dock 아이콘을 마우스 오른쪽 단추로 클릭 한 Quit경우 다음 스크린 샷과 같이을 마우스 왼쪽 단추로 클릭하십시오 .

아무 일도 일어나지 않는 것을 보게 될 것입니다. 즉, 응용 프로그램이 열려 있습니다.

키보드 단축키 ⌘ command+ Q도 비슷합니다.

이 응용 프로그램을 종료하는 유일한 방법은 Activity Monitor.app에서 "강제 종료"를 클릭하지 않고 응용 프로그램의 활성 대화 상자에서 단추를 클릭하는 것입니다.

"종료"기능이 호출 될 때 응용 프로그램이 현재 대화 상자를 표시하더라도 AppleScript 응용 프로그램의 고유 한 "종료"기능을 응용 프로그램에서 종료 할 수 있습니까?


참고 : display alert대화 상자와 대화 상자는 choose from list대화 상자와 동일한 횡포 한 방식으로 동작합니다 display dialog.


1
⌘Q는 앱의 메뉴 표시 줄 메뉴에서 회색으로 표시되어 작동하지 않습니다. 앱의 Dock 타일을 마우스 오른쪽 버튼으로 클릭하고 앱의 Dock 타일 상황에 맞는 메뉴에서 강제 종료를 선택할 수 있습니다. 즉, 응용 프로그램의 Dock 타일 컨텍스트 메뉴에서 종료를 클릭하여 표시 대화 상자가있는 동안 응용 프로그램을 종료하는 표준 AppleScript 코드가 있다고 생각하지 않습니다.
user3439894

1
오른쪽 마우스 클릭 옵션 인 "강제 종료" 에 익숙하지 않았습니다 . 좋은 팁입니다. 이 방법은 필자가 원하는 것처럼 실제로 대화 상자와 응용 프로그램을 닫습니다. 더 나은 대답이 있다고 상상할 수 없습니다. 따라서 답변으로 게시하려면 동의합니다. 감사!
rubik의 구면

나는 어제 밤에 정답의 형태로 그것을 쓰기 위해 피곤했다. :)
user3439894 2016 년

답변:


2

짧은 대답은 아닙니다 .

더 긴 대답은 다음과 같습니다. AppleScript는 의도적 display dialog으로 응용 프로그램 모달 객체를 생성합니다. 즉, 사용자가 객체의 컨트롤에 응답 할 때까지 응용 프로그램은 해당 객체에 대한 적절한 입력을받을 때까지 기다렸다가 계속합니다.

취소 버튼이 존재하지만 기본 버튼이 아닌 경우 Esc 키를 누르거나 Command-period 키를 눌러 취소 버튼을 활성화하여 해제 할 수 있습니다 . 취소 버튼을 사용하면 오류를 포착 return하고 앱의 나머지 코드 실행을 중지 하는 오류를 실행할 수 있습니다.

취소 버튼이없는 경우 직접 상호 작용하거나 여러 가지 방법 중 하나로 강제 종료없이 해제 할 수 없습니다.

강제 종료하려면 :

  • 당신은 수있는 옵션 - 마우스 오른쪽 단추로 클릭 응용 프로그램의 독 타일 및 강제 앱의 독 타일 컨텍스트 메뉴에서 종료를 선택합니다.
  • Option-Command-Esc를 눌러 Force Quit Applications 대화 상자를 불러옵니다.
  • 활동 모니터에서 강제 종료하십시오.
  • 프로세스는 몇 가지 다른 방식으로 터미널에서 종료 될 수 있지만 GUI 방법이 아니기 때문에이 답변의 범위를 벗어납니다.

또한 ⌘Q는 앱의 메뉴 표시 줄 메뉴에서 회색으로 표시되어 작동하지 않습니다.

이 모든 것은 AppleScript 응용 프로그램뿐만 아니라 스크립트 편집기 자체에서도 마찬가지입니다. a display dialog가 있으면 적절하게 상호 작용하거나 앱이 다른 방법으로 강제 종료해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.