VPN 상태 표시 줄 영역 아이콘을 표시하는 AppleScript


3

VPN 서비스에 연결하기 위해 AppleScript를 작성하려고합니다. VPN에 연결되면 메뉴 표시 줄의 상태 영역에 VPN 아이콘을 표시하고 싶습니다.

나는까지

  • VPN에 연결
  • 시스템 환경 설정의 네트워크 섹션 표시

서비스를 선택할 수 없습니다. 어떻게합니까?

tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preference.network"
    tell application "System Events" to tell process "System Preferences" to tell window "Network"
        -- code to select the VPN Service "XYZ" and click the "Show VPN Status in menu"
    end tell
end tell

시스템 환경 설정에 VPN에 쉽게 연결하고 연결 상태를 모니터링 할 수있는 메뉴 표시 줄 아이콘을 표시하는 옵션이 있다는 것을 이미 알고 있다고 생각합니다. 그래도 AppleScript 솔루션을 탐색해야 할 더 넓은 이유가 있습니까?
Ash

답변:


3

귀하의 질문에 대한 답변은 두 부분으로 나눌 수 있습니다.

  1. VPN에 연결하는 것은 GUI 스크립팅이 필요한 작업이 아닙니다 (예 : 네트워크 환경 설정 창을 열고 항목 클릭을 시뮬레이션하는 기능).이 기능은 Leopard 이후 시스템 이벤트네트워크 환경 설정 제품군 의 일부 이므로 생각합니다. 당신이 필요한 전부

    tell application "System Events"
        tell current location of network preferences
            connect service "<name of your VPN>"
        end tell
    end tell
  2. 그러나 VPN 상태 표시 줄 항목을 표시하는 것은 Network Preferences Suite의 일부가 아닙니다 . 상태 표시 줄 영역에 아이콘이 영구적으로 표시되지 않으면 GUI 스크립팅을 사용하여 필요할 때 활성화해야합니다.

    property vpnToUse : "<name of your VPN>"
    tell application "System Events"
        -- first activate the network pane, wait for it to load
        -- also might want to make sure this does not interrupt user interaction
        <your code here>
        -- get the index of the VPN in the service list
        tell current location of network preferences
            repeat with i from 1 to (count of every service)
                if name of (service i) is vpnToUse then
                    set listIndex to i
                    exit repeat
                end if
            end repeat
        end tell
        -- select the VPN item in the service list and activate status bar item
        tell process (name of application id "com.apple.systempreferences")
            tell window 1
                select row listIndex of table 1 of scroll area 1
                tell checkbox 1 of group 1
                    -- only click if not already activated
                    if value is 0 then click it
                end tell
            end tell
        end tell
    end tell

    GUI 스크립팅에서 항상 그렇듯이이 부분은 잠재적으로 매우 파괴적입니다. 최악의 경우 시스템 환경 설정을 사용하는 경우 수행 한 모든 작업을 취소 할 수도 있습니다 (전문가 및 GUI 스크립팅의 단점이 낳은 시스템 설정을 조작하는 환경 스위트 에서 MacScripter을 ). 또한 환경 설정 창의 특정 UI 레이아웃에 따라 취하기 쉽지만 애플리케이션 ID를 통해 색인 및 프로세스 이름 검색을 사용하여 위에 표시된 모델을 따르는 경우 현지화 문제의 영향을받지 않습니다. .

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