Làm cách nào tôi có thể đưa một cửa sổ lên phía trước mà không cần tập trung vào nó bằng Applescript trong OS X 10.8


9

Tôi muốn đưa một cửa sổ (ví dụ như QuickTime) lên phía trước, mà không cần tập trung vào nó . Tôi có thể làm điều đó trong OS X 10.7 bằng cách sử dụng đoạn mã sau trong Applescript.

tell application "System Events"
    set visible of process "QuickTime Player" to true
end tell

Đây là một Python tương đương.

from ScriptingBridge import *
process = SBApplication.applicationWithBundleIdentifier_('com.apple.systemevents').processes().objectWithName_('QuickTime Player')
process.setVisible_(True)

Nhưng nó không hoạt động sau khi tôi nâng cấp lên OS X 10.8. Có cách nào để làm cho nó hoạt động?

Câu trả lời:


12

Nếu một ứng dụng có các cửa sổ đang mở, điều này sẽ nâng chúng lên trên các cửa sổ từ các ứng dụng khác, nhưng giữ chúng ở dưới các ứng dụng hiện tại.

tell application "System Events"
    perform action "AXRaise" of window 1 of process "QuickTime Player"
end tell

Đó là điều tôi muốn. Cảm ơn. Nhân tiện, tôi có thể tìm tài liệu về các hành động ở đâu?
Yuxiao Zeng

1
Vai trò truy cập và thuộc tính Tham khảo: Hành động . Bạn có thể xem những hành động mà các thành phần UI hỗ trợ với actions ofhoặc bằng cách sử dụng Trình kiểm tra khả năng truy cập.
Lri

1
AXRaise không được phép trong OS X 10.10 (Yosemite) và 10.11 (El-Capitan) trừ khi bạn đã thêm ứng dụng gọi điện (ứng dụng thực thi AppleScript) vào phần "Trợ năng" của tab "Quyền riêng tư" của "Bảo mật & quyền riêng tư" "Bảng tùy chọn hệ thống. Điều này có nghĩa là lần đầu tiên bạn sẽ thử làm điều đó - bạn sẽ được trình bày với giao diện người dùng hệ thống sẽ đề xuất đưa bạn đến các tùy chọn. Tôi không thể sử dụng nó vì đường vòng trong trải nghiệm người dùng. Có cách nào khác để nâng cửa sổ mà không cần sử dụng AX (API khả năng truy cập) không ???
Motti Shneor

-1

Vì vậy, từ những gì tôi thu thập được từ bài đăng của bạn, bạn đang cố gắng đưa một ứng dụng vào xem bằng Applescript? Nếu vậy, mã cho điều này trong Mountain Lion thực sự khá đơn giản! Đây là:

tell application "Quicktime Player"
activate
end tell

Tôi mong cái này sẽ thành công! Nếu đó không phải là điều bạn muốn, hãy cho tôi biết và tôi sẽ cập nhật nó cho bạn. :)


2
Chà, kích hoạt sẽ tập trung Quicktime, vì vậy đó không phải là điều tôi muốn. Ý tôi là, nếu bạn mở ứng dụng Applescript, nhập mã của bạn và chạy nó, tiêu điểm cửa sổ sẽ được chuyển sang Quicktime. Do đó, bạn không thể nhập bất kỳ mã nào trước khi nhấp vào cửa sổ Applescript chẳng hạn.
Yuxiao Zeng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.