나는 applescript를 사용하여 창을 완전히 스크롤하고 싶습니다.어떻게 applescript를 사용하여 창 상단으로 스크롤합니까?
페이지 키, 홈 키를 사용해 보았습니다. 창 스크롤 기능을 사용하여 스크롤하는 방법을 찾으려고했지만 지금까지 스크롤 할 수 없었습니다. 스크롤 된 위치.
나는 applescript를 사용하여 창을 완전히 스크롤하고 싶습니다.어떻게 applescript를 사용하여 창 상단으로 스크롤합니까?
페이지 키, 홈 키를 사용해 보았습니다. 창 스크롤 기능을 사용하여 스크롤하는 방법을 찾으려고했지만 지금까지 스크롤 할 수 없었습니다. 스크롤 된 위치.
기본적으로 tell app "System Events"
문을 사용하여 키 입력 및 키 코드를 보냅니다. 이 나던 작업
keystroke page up key
keystroke page down key
keystroke home key
을하지만 나를 위해 : 이론적으로 , 당신은 다음을 사용할 수 있습니다. 좋은 소식은 대신 키 코드를 사용할 수 있다는 것입니다. 내가 좋은 무료 Full Key Codes 응용 프로그램을 사용하여 그들을 읽을 수 있지만, 그것은 동시에 두 개의 키를 읽는 것은 약간 까다 롭습니다 제안합니다.
페이지까지 : FN + 까지 키 : key code 116
페이지 아래로 : 을 FN
FN + 화살표 키의 키 코드
는 -combos 다음과 같습니다 + 아래쪽 키 :key code 121
홈 : FN + 왼쪽 키 : key code 115
이
종료 : FN + 가 오른쪽 키 : 당신은 사파리에서 열린 긴 페이지가 있고, 경우 key code 119
가
그래서 예를 들어 당신이 원하는 끝까지 스크롤하려면
tell application "System Events"
tell application "Safari" to activate
— to see the animation, we wait a moment:
delay 0.5
key code 119
end tell
키 입력을 보내는 대신을 사용하는 것이 좋습니다..
주의 할 : GUI 스크립팅 응용 프로그램의 주어진 버전에 대한 키 입력을 보내는 것보다더 강력하지만, 향후 버전에서 응용 프로그램의 레이아웃의 변경이 코드을 깰 수 있습니다.
또한:
GUI 스크립팅은 보조 장치에 대한 액세스가 활성화 것을 요구한다;
tell application "System Events" to set UI elements enabled to true
(필수 관리자 권한)을 실행하여 시스템 전체 슬프게도tell application "System Events" to get UI elements enabled
것이다 액세스 가능 여부를보고을 두 시나리오 모두에서; Xcode
과 함께 제공되는 Accessibility Inspector
유틸리티를 사용하면 도움이됩니다. 이 유틸리티에 의해보고 된 클래스 이름은 System Events
사전에 포함 된 UI element
클래스에 해당합니다. 예 : AXSplitGroup
은 splitter group
에 해당합니다.
다음 스크롤 Safari 6.0.3
의 상단에 전면 창
tell application "System Events"
# Use Accessibility Inspector to find the desired target.
tell front window of process "Safari"
tell scroll bar 1 of scroll area 1 of group 1 of group 1 of last group
set value of attribute "AXValue" to 0 # Scroll to top.
end tell
end tell
end tell
업데이트 : 알림, 스크립트의이 유형 잘 작동으로 주어진 응용 프로그램 버전에 대해 코드를 Safari 8.0.4
에 대해 변경해야했습니다.
tell application "System Events"
# Use Accessibility Inspector to find the desired target.
tell front window of process "Safari"
tell scroll bar 1 of scroll area 1 of group 1 of group 1 of group 2
set value of attribute "AXValue" to 0 # Scroll to top.
end tell
end tell
end tell
브라우저를 사용하면 JavaScript를 사용할 수도 있습니다.
tell application "Safari" to tell document 1
do JavaScript "window.scroll(0,0)"
end tell
tell application "Google Chrome" to tell active tab of window 1
execute javascript "window.scroll(0,0)"
end tell
이것은 두 개의 브라우저 앱에 대해서만 작동하지만 두 가지 장점이 있습니다. GUI 스크립팅 방식과 달리 키 입력 방식보다 강력하고 보조 액세스에 대한 승인이 필요하지 않습니다. – mklement0
환상적입니다. 고맙습니다. 나는 많은 것을 시도해 보았습니다. 많은 것들이 당신의 솔루션과 비슷했지만, 그들은 옳지 않았습니다. 이것은 매력처럼 작동합니다. –
아쉽게도 참조 된 키보드 유틸리티는 더 이상 사용되지 않습니다 (PowerPC 플랫폼 용으로 작성). ** Key Code ** (https://itunes.apple.com/us/app/key-codes/id414568915?mt=12)는 여전히 유지 관리되고 있으며 무료입니다. – mklement0